home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Developer Kit / QuickTime 2.0 Developer Kit.iso / mac / MAC / Programming Stuff / Interfaces / CIncludes / Files.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-11  |  64.6 KB  |  2,234 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Files.h
  3.  
  4.      Copyright:    © 1984-1994 by Apple Computer, Inc.
  5.                  All rights reserved.
  6.  
  7.      Version:    Universal Interfaces 2.0a3  ETO #16, MPW prerelease.  Friday, November 11, 1994. 
  8.  
  9.      Bugs?:        If you find a problem with this file, send the file and version
  10.                  information (from above) and the problem description to:
  11.  
  12.                      Internet:    apple.bugs@applelink.apple.com
  13.                      AppleLink:    APPLE.BUGS
  14.  
  15. */
  16.  
  17. #ifndef __FILES__
  18. #define __FILES__
  19.  
  20.  
  21. #ifndef __TYPES__
  22. #include <Types.h>
  23. #endif
  24. /*    #include <ConditionalMacros.h>                                */
  25.  
  26. #ifndef __MIXEDMODE__
  27. #include <MixedMode.h>
  28. #endif
  29.  
  30. #ifndef __OSUTILS__
  31. #include <OSUtils.h>
  32. #endif
  33. /*    #include <Memory.h>                                            */
  34.  
  35. #ifdef __cplusplus
  36. extern "C" {
  37. #endif
  38.  
  39. #if GENERATINGPOWERPC
  40. #pragma options align=mac68k
  41. #endif
  42.  
  43. #ifdef __CFM68K__
  44. #pragma lib_export on
  45. #endif
  46.  
  47.  
  48. enum {
  49. /* Finder Constants */
  50.     fsAtMark                    = 0,
  51.     fOnDesk                        = 1,
  52.     fsCurPerm                    = 0,
  53.     fHasBundle                    = 8192,
  54.     fsRdPerm                    = 1,
  55.     fInvisible                    = 16384,
  56.     fTrash                        = -3,
  57.     fsWrPerm                    = 2,
  58.     fDesktop                    = -2,
  59.     fsRdWrPerm                    = 3,
  60.     fDisk                        = 0,
  61.     fsRdWrShPerm                = 4,
  62.     fsFromStart                    = 1,
  63.     fsFromLEOF                    = 2,
  64.     fsFromMark                    = 3,
  65.     rdVerify                    = 64,
  66.     ioDirFlg                    = 3,                            /* see IM IV-125 */
  67.     ioDirMask                    = 0x10,
  68.     fsRtParID                    = 1,
  69.     fsRtDirID                    = 2
  70. };
  71.  
  72. enum {
  73. /* CatSearch SearchBits Constants */
  74.     fsSBPartialName                = 1,
  75.     fsSBFullName                = 2,
  76.     fsSBFlAttrib                = 4,
  77.     fsSBFlFndrInfo                = 8,
  78.     fsSBFlLgLen                    = 32,
  79.     fsSBFlPyLen                    = 64,
  80.     fsSBFlRLgLen                = 128,
  81.     fsSBFlRPyLen                = 256,
  82.     fsSBFlCrDat                    = 512,
  83.     fsSBFlMdDat                    = 1024,
  84.     fsSBFlBkDat                    = 2048,
  85.     fsSBFlXFndrInfo                = 4096,
  86.     fsSBFlParID                    = 8192,
  87.     fsSBNegate                    = 16384,
  88.     fsSBDrUsrWds                = 8,
  89.     fsSBDrNmFls                    = 16,
  90.     fsSBDrCrDat                    = 512,
  91.     fsSBDrMdDat                    = 1024,
  92.     fsSBDrBkDat                    = 2048,
  93.     fsSBDrFndrInfo                = 4096
  94. };
  95.  
  96. enum {
  97.     fsSBDrParID                    = 8192,
  98. /* vMAttrib (GetVolParms) bit position constants */
  99.     bLimitFCBs                    = 31,
  100.     bLocalWList                    = 30,
  101.     bNoMiniFndr                    = 29,
  102.     bNoVNEdit                    = 28,
  103.     bNoLclSync                    = 27,
  104.     bTrshOffLine                = 26,
  105.     bNoSwitchTo                    = 25,
  106.     bNoDeskItems                = 20,
  107.     bNoBootBlks                    = 19,
  108.     bAccessCntl                    = 18,
  109.     bNoSysDir                    = 17,
  110.     bHasExtFSVol                = 16,
  111.     bHasOpenDeny                = 15,
  112.     bHasCopyFile                = 14,
  113.     bHasMoveRename                = 13,
  114.     bHasDesktopMgr                = 12,
  115.     bHasShortName                = 11,
  116.     bHasFolderLock                = 10,
  117.     bHasPersonalAccessPrivileges = 9
  118. };
  119.  
  120. enum {
  121.     bHasUserGroupList            = 8,
  122.     bHasCatSearch                = 7,
  123.     bHasFileIDs                    = 6,
  124.     bHasBTreeMgr                = 5,
  125.     bHasBlankAccessPrivileges    = 4,
  126. /* Desktop Database icon Constants */
  127.     kLargeIcon                    = 1,
  128.     kLarge4BitIcon                = 2,
  129.     kLarge8BitIcon                = 3,
  130.     kSmallIcon                    = 4,
  131.     kSmall4BitIcon                = 5,
  132.     kSmall8BitIcon                = 6,
  133.     kLargeIconSize                = 256,
  134.     kLarge4BitIconSize            = 512,
  135.     kLarge8BitIconSize            = 1024,
  136.     kSmallIconSize                = 64,
  137.     kSmall4BitIconSize            = 128,
  138.     kSmall8BitIconSize            = 256,
  139. /* Foreign Privilege Model Identifiers */
  140.     fsUnixPriv                    = 1,
  141. /* Version Release Stage Codes */
  142.     developStage                = 0x20,
  143.     alphaStage                    = 0x40
  144. };
  145.  
  146. enum {
  147.     betaStage                    = 0x60,
  148.     finalStage                    = 0x80,
  149. /* Authentication Constants */
  150.     kNoUserAuthentication        = 1,
  151.     kPassword                    = 2,
  152.     kEncryptPassword            = 3,
  153.     kTwoWayEncryptPassword        = 6
  154. };
  155.  
  156. enum {
  157.     hFileInfo,
  158.     dirInfo
  159. };
  160.  
  161. typedef SInt8 CInfoType;
  162.  
  163.  
  164. enum {
  165. /* mapping codes (ioObjType) for MapName & MapID */
  166.     kOwnerID2Name                = 1,
  167.     kGroupID2Name                = 2,
  168.     kOwnerName2ID                = 3,
  169.     kGroupName2ID                = 4,
  170. /* types of oj object to be returned (ioObjType) for _GetUGEntry */
  171.     kReturnNextUser                = 1,
  172.     kReturnNextGroup            = 2,
  173.     kReturnNextUG                = 3
  174. };
  175.  
  176. struct FInfo {
  177.     OSType                            fdType;                        /*the type of the file*/
  178.     OSType                            fdCreator;                    /*file's creator*/
  179.     unsigned short                    fdFlags;                    /*flags ex. hasbundle,invisible,locked, etc.*/
  180.     Point                            fdLocation;                    /*file's location in folder*/
  181.     short                            fdFldr;                        /*folder containing file*/
  182. };
  183. typedef struct FInfo FInfo;
  184.  
  185. struct FXInfo {
  186.     short                            fdIconID;                    /*Icon ID*/
  187.     short                            fdUnused[3];                /*unused but reserved 6 bytes*/
  188.     SInt8                            fdScript;                    /*Script flag and number*/
  189.     SInt8                            fdXFlags;                    /*More flag bits*/
  190.     short                            fdComment;                    /*Comment ID*/
  191.     long                            fdPutAway;                    /*Home Dir ID*/
  192. };
  193. typedef struct FXInfo FXInfo;
  194.  
  195. struct DInfo {
  196.     Rect                            frRect;                        /*folder rect*/
  197.     unsigned short                    frFlags;                    /*Flags*/
  198.     Point                            frLocation;                    /*folder location*/
  199.     short                            frView;                        /*folder view*/
  200. };
  201. typedef struct DInfo DInfo;
  202.  
  203. struct DXInfo {
  204.     Point                            frScroll;                    /*scroll position*/
  205.     long                            frOpenChain;                /*DirID chain of open folders*/
  206.     SInt8                            frScript;                    /*Script flag and number*/
  207.     SInt8                            frXFlags;                    /*More flag bits*/
  208.     short                            frComment;                    /*comment*/
  209.     long                            frPutAway;                    /*DirID*/
  210. };
  211. typedef struct DXInfo DXInfo;
  212.  
  213. struct GetVolParmsInfoBuffer {
  214.     short                            vMVersion;                    /*version number*/
  215.     long                            vMAttrib;                    /*bit vector of attributes (see vMAttrib constants)*/
  216.     Handle                            vMLocalHand;                /*handle to private data*/
  217.     long                            vMServerAdr;                /*AppleTalk server address or zero*/
  218.     long                            vMVolumeGrade;                /*approx. speed rating or zero if unrated*/
  219.     short                            vMForeignPrivID;            /*foreign privilege model supported or zero if none*/
  220. };
  221. typedef struct GetVolParmsInfoBuffer GetVolParmsInfoBuffer;
  222.  
  223. typedef union ParamBlockRec ParamBlockRec;
  224.  
  225. typedef ParamBlockRec *ParmBlkPtr;
  226.  
  227. /*
  228.         IOCompletionProcPtr uses register based parameters on the 68k and cannot
  229.         be written in or called from a high-level language without the help of
  230.         mixed mode or assembly glue.
  231.  
  232.         In:
  233.          => paramBlock      A0.L
  234. */
  235.  
  236. #if GENERATINGCFM
  237. typedef UniversalProcPtr IOCompletionUPP;
  238. #else
  239. typedef Register68kProcPtr IOCompletionUPP;
  240. #endif
  241.  
  242. struct IOParam {
  243.     QElemPtr                        qLink;
  244.     short                            qType;
  245.     short                            ioTrap;
  246.     Ptr                                ioCmdAddr;
  247.     IOCompletionUPP                    ioCompletion;
  248.     OSErr                            ioResult;
  249.     StringPtr                        ioNamePtr;
  250.     short                            ioVRefNum;
  251.     short                            ioRefNum;
  252.     SInt8                            ioVersNum;
  253.     SInt8                            ioPermssn;
  254.     Ptr                                ioMisc;
  255.     Ptr                                ioBuffer;
  256.     long                            ioReqCount;
  257.     long                            ioActCount;
  258.     short                            ioPosMode;
  259.     long                            ioPosOffset;
  260. };
  261. typedef struct IOParam IOParam, *IOParamPtr;
  262.  
  263. struct FileParam {
  264.     QElemPtr                        qLink;
  265.     short                            qType;
  266.     short                            ioTrap;
  267.     Ptr                                ioCmdAddr;
  268.     IOCompletionUPP                    ioCompletion;
  269.     OSErr                            ioResult;
  270.     StringPtr                        ioNamePtr;
  271.     short                            ioVRefNum;
  272.     short                            ioFRefNum;
  273.     SInt8                            ioFVersNum;
  274.     SInt8                            filler1;
  275.     short                            ioFDirIndex;
  276.     SInt8                            ioFlAttrib;
  277.     SInt8                            ioFlVersNum;
  278.     FInfo                            ioFlFndrInfo;
  279.     unsigned long                    ioFlNum;
  280.     unsigned short                    ioFlStBlk;
  281.     long                            ioFlLgLen;
  282.     long                            ioFlPyLen;
  283.     unsigned short                    ioFlRStBlk;
  284.     long                            ioFlRLgLen;
  285.     long                            ioFlRPyLen;
  286.     unsigned long                    ioFlCrDat;
  287.     unsigned long                    ioFlMdDat;
  288. };
  289. typedef struct FileParam FileParam, *FileParamPtr;
  290.  
  291. struct VolumeParam {
  292.     QElemPtr                        qLink;
  293.     short                            qType;
  294.     short                            ioTrap;
  295.     Ptr                                ioCmdAddr;
  296.     IOCompletionUPP                    ioCompletion;
  297.     OSErr                            ioResult;
  298.     StringPtr                        ioNamePtr;
  299.     short                            ioVRefNum;
  300.     long                            filler2;
  301.     short                            ioVolIndex;
  302.     unsigned long                    ioVCrDate;
  303.     unsigned long                    ioVLsBkUp;
  304.     unsigned short                    ioVAtrb;
  305.     unsigned short                    ioVNmFls;
  306.     unsigned short                    ioVDirSt;
  307.     short                            ioVBlLn;
  308.     unsigned short                    ioVNmAlBlks;
  309.     long                            ioVAlBlkSiz;
  310.     long                            ioVClpSiz;
  311.     unsigned short                    ioAlBlSt;
  312.     unsigned long                    ioVNxtFNum;
  313.     unsigned short                    ioVFrBlk;
  314. };
  315. typedef struct VolumeParam VolumeParam, *VolumeParamPtr;
  316.  
  317. struct CntrlParam {
  318.     QElemPtr                        qLink;
  319.     short                            qType;
  320.     short                            ioTrap;
  321.     Ptr                                ioCmdAddr;
  322.     IOCompletionUPP                    ioCompletion;
  323.     OSErr                            ioResult;
  324.     StringPtr                        ioNamePtr;
  325.     short                            ioVRefNum;
  326.     short                            ioCRefNum;
  327.     short                            csCode;
  328.     short                            csParam[11];
  329. };
  330. typedef struct CntrlParam CntrlParam, *CntrlParamPtr;
  331.  
  332. struct SlotDevParam {
  333.     QElemPtr                        qLink;
  334.     short                            qType;
  335.     short                            ioTrap;
  336.     Ptr                                ioCmdAddr;
  337.     IOCompletionUPP                    ioCompletion;
  338.     OSErr                            ioResult;
  339.     StringPtr                        ioNamePtr;
  340.     short                            ioVRefNum;
  341.     short                            ioSRefNum;
  342.     SInt8                            ioSVersNum;
  343.     SInt8                            ioSPermssn;
  344.     Ptr                                ioSMix;
  345.     short                            ioSFlags;
  346.     SInt8                            ioSlot;
  347.     SInt8                            ioID;
  348. };
  349. typedef struct SlotDevParam SlotDevParam, *SlotDevParamPtr;
  350.  
  351. struct MultiDevParam {
  352.     QElemPtr                        qLink;
  353.     short                            qType;
  354.     short                            ioTrap;
  355.     Ptr                                ioCmdAddr;
  356.     IOCompletionUPP                    ioCompletion;
  357.     OSErr                            ioResult;
  358.     StringPtr                        ioNamePtr;
  359.     short                            ioVRefNum;
  360.     short                            ioMRefNum;
  361.     SInt8                            ioMVersNum;
  362.     SInt8                            ioMPermssn;
  363.     Ptr                                ioMMix;
  364.     short                            ioMFlags;
  365.     Ptr                                ioSEBlkPtr;
  366. };
  367. typedef struct MultiDevParam MultiDevParam, *MultiDevParamPtr;
  368.  
  369. union ParamBlockRec {
  370.     IOParam                            ioParam;
  371.     FileParam                        fileParam;
  372.     VolumeParam                        volumeParam;
  373.     CntrlParam                        cntrlParam;
  374.     SlotDevParam                    slotDevParam;
  375.     MultiDevParam                    multiDevParam;
  376. };
  377. struct HFileInfo {
  378.     QElemPtr                        qLink;
  379.     short                            qType;
  380.     short                            ioTrap;
  381.     Ptr                                ioCmdAddr;
  382.     IOCompletionUPP                    ioCompletion;
  383.     OSErr                            ioResult;
  384.     StringPtr                        ioNamePtr;
  385.     short                            ioVRefNum;
  386.     short                            ioFRefNum;
  387.     SInt8                            ioFVersNum;
  388.     SInt8                            filler1;
  389.     short                            ioFDirIndex;
  390.     SInt8                            ioFlAttrib;
  391.     SInt8                            filler2;
  392.     FInfo                            ioFlFndrInfo;
  393.     long                            ioDirID;
  394.     unsigned short                    ioFlStBlk;
  395.     long                            ioFlLgLen;
  396.     long                            ioFlPyLen;
  397.     unsigned short                    ioFlRStBlk;
  398.     long                            ioFlRLgLen;
  399.     long                            ioFlRPyLen;
  400.     unsigned long                    ioFlCrDat;
  401.     unsigned long                    ioFlMdDat;
  402.     unsigned long                    ioFlBkDat;
  403.     FXInfo                            ioFlXFndrInfo;
  404.     long                            ioFlParID;
  405.     long                            ioFlClpSiz;
  406. };
  407. typedef struct HFileInfo HFileInfo;
  408.  
  409. struct DirInfo {
  410.     QElemPtr                        qLink;
  411.     short                            qType;
  412.     short                            ioTrap;
  413.     Ptr                                ioCmdAddr;
  414.     IOCompletionUPP                    ioCompletion;
  415.     OSErr                            ioResult;
  416.     StringPtr                        ioNamePtr;
  417.     short                            ioVRefNum;
  418.     short                            ioFRefNum;
  419.     SInt8                            ioFVersNum;
  420.     SInt8                            filler1;
  421.     short                            ioFDirIndex;
  422.     SInt8                            ioFlAttrib;
  423.     SInt8                            filler2;
  424.     DInfo                            ioDrUsrWds;
  425.     long                            ioDrDirID;
  426.     unsigned short                    ioDrNmFls;
  427.     short                            filler3[9];
  428.     unsigned long                    ioDrCrDat;
  429.     unsigned long                    ioDrMdDat;
  430.     unsigned long                    ioDrBkDat;
  431.     DXInfo                            ioDrFndrInfo;
  432.     long                            ioDrParID;
  433. };
  434. typedef struct DirInfo DirInfo;
  435.  
  436. union CInfoPBRec {
  437.     HFileInfo                        hFileInfo;
  438.     DirInfo                            dirInfo;
  439. };
  440. typedef union CInfoPBRec CInfoPBRec, *CInfoPBPtr;
  441.  
  442. struct CatPositionRec {
  443.     long                            initialize;
  444.     short                            priv[6];
  445. };
  446. typedef struct CatPositionRec CatPositionRec;
  447.  
  448. struct FSSpec {
  449.     short                            vRefNum;
  450.     long                            parID;
  451.     Str63                            name;
  452. };
  453. typedef struct FSSpec FSSpec;
  454.  
  455. typedef FSSpec *FSSpecPtr, **FSSpecHandle;
  456.  
  457. /* pointer to array of FSSpecs */
  458. typedef FSSpecPtr FSSpecArrayPtr;
  459.  
  460. /* The only difference between "const FSSpec*" and "ConstFSSpecPtr" is 
  461.    that as a parameter, ConstFSSpecPtr is allowed to be NULL */
  462. typedef const FSSpec *ConstFSSpecPtr;
  463.  
  464. /* The following are structures to be filled out with the _GetVolMountInfo call
  465.  and passed back into the _VolumeMount call for external file system mounts. */
  466. /* the "signature" of the file system */
  467. typedef OSType VolumeType;
  468.  
  469.  
  470. enum {
  471. /* the signature for AppleShare */
  472.     AppleShareMediaType            = 'afpm'
  473. };
  474.  
  475. struct VolMountInfoHeader {
  476.     short                            length;                        /* length of location data (including self) */
  477.     VolumeType                        media;                        /* type of media.  Variable length data follows */
  478. };
  479. typedef struct VolMountInfoHeader VolMountInfoHeader;
  480.  
  481. typedef VolMountInfoHeader *VolMountInfoPtr;
  482.  
  483. struct AFPVolMountInfo {
  484.     short                            length;                        /* length of location data (including self) */
  485.     VolumeType                        media;                        /* type of media */
  486.     short                            flags;                        /* bits for no messages, no reconnect */
  487.     SInt8                            nbpInterval;                /* NBP Interval parameter (IM2, p.322) */
  488.     SInt8                            nbpCount;                    /* NBP Interval parameter (IM2, p.322) */
  489.     short                            uamType;                    /* User Authentication Method */
  490.     short                            zoneNameOffset;                /* short positive offset from start of struct to Zone Name */
  491.     short                            serverNameOffset;            /* offset to pascal Server Name string */
  492.     short                            volNameOffset;                /* offset to pascal Volume Name string */
  493.     short                            userNameOffset;                /* offset to pascal User Name string */
  494.     short                            userPasswordOffset;            /* offset to pascal User Password string */
  495.     short                            volPasswordOffset;            /* offset to pascal Volume Password string */
  496.     char                            AFPData[144];                /* variable length data may follow */
  497. };
  498. typedef struct AFPVolMountInfo AFPVolMountInfo;
  499.  
  500. typedef AFPVolMountInfo *AFPVolMountInfoPtr;
  501.  
  502. struct DTPBRec {
  503.     QElemPtr                        qLink;
  504.     short                            qType;
  505.     short                            ioTrap;
  506.     Ptr                                ioCmdAddr;
  507.     IOCompletionUPP                    ioCompletion;
  508.     OSErr                            ioResult;
  509.     StringPtr                        ioNamePtr;
  510.     short                            ioVRefNum;
  511.     short                            ioDTRefNum;                    /* desktop refnum */
  512.     short                            ioIndex;
  513.     long                            ioTagInfo;
  514.     Ptr                                ioDTBuffer;
  515.     long                            ioDTReqCount;
  516.     long                            ioDTActCount;
  517.     SInt8                            ioFiller1;
  518.     SInt8                            ioIconType;
  519.     short                            ioFiller2;
  520.     long                            ioDirID;
  521.     OSType                            ioFileCreator;
  522.     OSType                            ioFileType;
  523.     long                            ioFiller3;
  524.     long                            ioDTLgLen;
  525.     long                            ioDTPyLen;
  526.     short                            ioFiller4[14];
  527.     long                            ioAPPLParID;
  528. };
  529. typedef struct DTPBRec DTPBRec;
  530.  
  531. typedef DTPBRec *DTPBPtr;
  532.  
  533. struct HIOParam {
  534.     QElemPtr                        qLink;
  535.     short                            qType;
  536.     short                            ioTrap;
  537.     Ptr                                ioCmdAddr;
  538.     IOCompletionUPP                    ioCompletion;
  539.     OSErr                            ioResult;
  540.     StringPtr                        ioNamePtr;
  541.     short                            ioVRefNum;
  542.     short                            ioRefNum;
  543.     SInt8                            ioVersNum;
  544.     SInt8                            ioPermssn;
  545.     Ptr                                ioMisc;
  546.     Ptr                                ioBuffer;
  547.     long                            ioReqCount;
  548.     long                            ioActCount;
  549.     short                            ioPosMode;
  550.     long                            ioPosOffset;
  551. };
  552. typedef struct HIOParam HIOParam, *HIOParamPtr;
  553.  
  554. struct HFileParam {
  555.     QElemPtr                        qLink;
  556.     short                            qType;
  557.     short                            ioTrap;
  558.     Ptr                                ioCmdAddr;
  559.     IOCompletionUPP                    ioCompletion;
  560.     OSErr                            ioResult;
  561.     StringPtr                        ioNamePtr;
  562.     short                            ioVRefNum;
  563.     short                            ioFRefNum;
  564.     SInt8                            ioFVersNum;
  565.     SInt8                            filler1;
  566.     short                            ioFDirIndex;
  567.     SInt8                            ioFlAttrib;
  568.     SInt8                            ioFlVersNum;
  569.     FInfo                            ioFlFndrInfo;
  570.     long                            ioDirID;
  571.     unsigned short                    ioFlStBlk;
  572.     long                            ioFlLgLen;
  573.     long                            ioFlPyLen;
  574.     unsigned short                    ioFlRStBlk;
  575.     long                            ioFlRLgLen;
  576.     long                            ioFlRPyLen;
  577.     unsigned long                    ioFlCrDat;
  578.     unsigned long                    ioFlMdDat;
  579. };
  580. typedef struct HFileParam HFileParam, *HFileParamPtr;
  581.  
  582. struct HVolumeParam {
  583.     QElemPtr                        qLink;
  584.     short                            qType;
  585.     short                            ioTrap;
  586.     Ptr                                ioCmdAddr;
  587.     IOCompletionUPP                    ioCompletion;
  588.     OSErr                            ioResult;
  589.     StringPtr                        ioNamePtr;
  590.     short                            ioVRefNum;
  591.     long                            filler2;
  592.     short                            ioVolIndex;
  593.     unsigned long                    ioVCrDate;
  594.     unsigned long                    ioVLsMod;
  595.     short                            ioVAtrb;
  596.     unsigned short                    ioVNmFls;
  597.     short                            ioVBitMap;
  598.     short                            ioAllocPtr;
  599.     unsigned short                    ioVNmAlBlks;
  600.     long                            ioVAlBlkSiz;
  601.     long                            ioVClpSiz;
  602.     short                            ioAlBlSt;
  603.     long                            ioVNxtCNID;
  604.     unsigned short                    ioVFrBlk;
  605.     unsigned short                    ioVSigWord;
  606.     short                            ioVDrvInfo;
  607.     short                            ioVDRefNum;
  608.     short                            ioVFSID;
  609.     unsigned long                    ioVBkUp;
  610.     unsigned short                    ioVSeqNum;
  611.     long                            ioVWrCnt;
  612.     long                            ioVFilCnt;
  613.     long                            ioVDirCnt;
  614.     long                            ioVFndrInfo[8];
  615. };
  616. typedef struct HVolumeParam HVolumeParam, *HVolumeParamPtr;
  617.  
  618. struct AccessParam {
  619.     QElemPtr                        qLink;
  620.     short                            qType;
  621.     short                            ioTrap;
  622.     Ptr                                ioCmdAddr;
  623.     IOCompletionUPP                    ioCompletion;
  624.     OSErr                            ioResult;
  625.     StringPtr                        ioNamePtr;
  626.     short                            ioVRefNum;
  627.     short                            filler3;
  628.     short                            ioDenyModes;
  629.     short                            filler4;
  630.     SInt8                            filler5;
  631.     SInt8                            ioACUser;
  632.     long                            filler6;
  633.     long                            ioACOwnerID;
  634.     long                            ioACGroupID;
  635.     long                            ioACAccess;
  636.     long                            ioDirID;
  637. };
  638. typedef struct AccessParam AccessParam, *AccessParamPtr;
  639.  
  640. struct ObjParam {
  641.     QElemPtr                        qLink;
  642.     short                            qType;
  643.     short                            ioTrap;
  644.     Ptr                                ioCmdAddr;
  645.     IOCompletionUPP                    ioCompletion;
  646.     OSErr                            ioResult;
  647.     StringPtr                        ioNamePtr;
  648.     short                            ioVRefNum;
  649.     short                            filler7;
  650.     short                            ioObjType;
  651.     StringPtr                        ioObjNamePtr;
  652.     long                            ioObjID;
  653. };
  654. typedef struct ObjParam ObjParam, *ObjParamPtr;
  655.  
  656. struct CopyParam {
  657.     QElemPtr                        qLink;
  658.     short                            qType;
  659.     short                            ioTrap;
  660.     Ptr                                ioCmdAddr;
  661.     IOCompletionUPP                    ioCompletion;
  662.     OSErr                            ioResult;
  663.     StringPtr                        ioNamePtr;
  664.     short                            ioVRefNum;
  665.     short                            ioDstVRefNum;
  666.     short                            filler8;
  667.     StringPtr                        ioNewName;
  668.     StringPtr                        ioCopyName;
  669.     long                            ioNewDirID;
  670.     long                            filler14;
  671.     long                            filler15;
  672.     long                            ioDirID;
  673. };
  674. typedef struct CopyParam CopyParam, *CopyParamPtr;
  675.  
  676. struct WDParam {
  677.     QElemPtr                        qLink;
  678.     short                            qType;
  679.     short                            ioTrap;
  680.     Ptr                                ioCmdAddr;
  681.     IOCompletionUPP                    ioCompletion;
  682.     OSErr                            ioResult;
  683.     StringPtr                        ioNamePtr;
  684.     short                            ioVRefNum;
  685.     short                            filler9;
  686.     short                            ioWDIndex;
  687.     long                            ioWDProcID;
  688.     short                            ioWDVRefNum;
  689.     short                            filler10;
  690.     long                            filler11;
  691.     long                            filler12;
  692.     long                            filler13;
  693.     long                            ioWDDirID;
  694. };
  695. typedef struct WDParam WDParam, *WDParamPtr;
  696.  
  697. struct FIDParam {
  698.     QElemPtr                        qLink;
  699.     short                            qType;
  700.     short                            ioTrap;
  701.     Ptr                                ioCmdAddr;
  702.     IOCompletionUPP                    ioCompletion;
  703.     OSErr                            ioResult;
  704.     StringPtr                        ioNamePtr;
  705.     short                            ioVRefNum;
  706.     long                            filler14;
  707.     StringPtr                        ioDestNamePtr;
  708.     long                            filler15;
  709.     long                            ioDestDirID;
  710.     long                            filler16;
  711.     long                            filler17;
  712.     long                            ioSrcDirID;
  713.     short                            filler18;
  714.     long                            ioFileID;
  715. };
  716. typedef struct FIDParam FIDParam, *FIDParamPtr;
  717.  
  718. struct ForeignPrivParam {
  719.     QElemPtr                        qLink;
  720.     short                            qType;
  721.     short                            ioTrap;
  722.     Ptr                                ioCmdAddr;
  723.     IOCompletionUPP                    ioCompletion;
  724.     OSErr                            ioResult;
  725.     StringPtr                        ioNamePtr;
  726.     short                            ioVRefNum;
  727.     long                            ioFiller21;
  728.     long                            ioFiller22;
  729.     Ptr                                ioForeignPrivBuffer;
  730.     long                            ioForeignPrivActCount;
  731.     long                            ioForeignPrivReqCount;
  732.     long                            ioFiller23;
  733.     long                            ioForeignPrivDirID;
  734.     long                            ioForeignPrivInfo1;
  735.     long                            ioForeignPrivInfo2;
  736.     long                            ioForeignPrivInfo3;
  737.     long                            ioForeignPrivInfo4;
  738. };
  739. typedef struct ForeignPrivParam ForeignPrivParam, *ForeignPrivParamPtr;
  740.  
  741. struct CSParam {
  742.     QElemPtr                        qLink;
  743.     short                            qType;
  744.     short                            ioTrap;
  745.     Ptr                                ioCmdAddr;
  746.     IOCompletionUPP                    ioCompletion;
  747.     OSErr                            ioResult;
  748.     StringPtr                        ioNamePtr;
  749.     short                            ioVRefNum;
  750.     FSSpecPtr                        ioMatchPtr;
  751.     long                            ioReqMatchCount;
  752.     long                            ioActMatchCount;
  753.     long                            ioSearchBits;
  754.     CInfoPBPtr                        ioSearchInfo1;
  755.     CInfoPBPtr                        ioSearchInfo2;
  756.     long                            ioSearchTime;
  757.     CatPositionRec                    ioCatPosition;
  758.     Ptr                                ioOptBuffer;
  759.     long                            ioOptBufSize;
  760. };
  761. typedef struct CSParam CSParam, *CSParamPtr;
  762.  
  763. union HParamBlockRec {
  764.     HIOParam                        ioParam;
  765.     HFileParam                        fileParam;
  766.     HVolumeParam                    volumeParam;
  767.     AccessParam                        accessParam;
  768.     ObjParam                        objParam;
  769.     CopyParam                        copyParam;
  770.     WDParam                            wdParam;
  771.     FIDParam                        fidParam;
  772.     CSParam                            csParam;
  773.     ForeignPrivParam                foreignPrivParam;
  774. };
  775. typedef union HParamBlockRec HParamBlockRec;
  776.  
  777. typedef HParamBlockRec *HParmBlkPtr;
  778.  
  779. struct CMovePBRec {
  780.     QElemPtr                        qLink;
  781.     short                            qType;
  782.     short                            ioTrap;
  783.     Ptr                                ioCmdAddr;
  784.     IOCompletionUPP                    ioCompletion;
  785.     OSErr                            ioResult;
  786.     StringPtr                        ioNamePtr;
  787.     short                            ioVRefNum;
  788.     long                            filler1;
  789.     StringPtr                        ioNewName;
  790.     long                            filler2;
  791.     long                            ioNewDirID;
  792.     long                            filler3[2];
  793.     long                            ioDirID;
  794. };
  795. typedef struct CMovePBRec CMovePBRec;
  796.  
  797. typedef CMovePBRec *CMovePBPtr;
  798.  
  799. struct WDPBRec {
  800.     QElemPtr                        qLink;
  801.     short                            qType;
  802.     short                            ioTrap;
  803.     Ptr                                ioCmdAddr;
  804.     IOCompletionUPP                    ioCompletion;
  805.     OSErr                            ioResult;
  806.     StringPtr                        ioNamePtr;
  807.     short                            ioVRefNum;
  808.     short                            filler1;
  809.     short                            ioWDIndex;
  810.     long                            ioWDProcID;
  811.     short                            ioWDVRefNum;
  812.     short                            filler2[7];
  813.     long                            ioWDDirID;
  814. };
  815. typedef struct WDPBRec WDPBRec;
  816.  
  817. typedef WDPBRec *WDPBPtr;
  818.  
  819. struct FCBPBRec {
  820.     QElemPtr                        qLink;
  821.     short                            qType;
  822.     short                            ioTrap;
  823.     Ptr                                ioCmdAddr;
  824.     IOCompletionUPP                    ioCompletion;
  825.     OSErr                            ioResult;
  826.     StringPtr                        ioNamePtr;
  827.     short                            ioVRefNum;
  828.     short                            ioRefNum;
  829.     short                            filler;
  830.     short                            ioFCBIndx;
  831.     short                            filler1;
  832.     long                            ioFCBFlNm;
  833.     short                            ioFCBFlags;
  834.     unsigned short                    ioFCBStBlk;
  835.     long                            ioFCBEOF;
  836.     long                            ioFCBPLen;
  837.     long                            ioFCBCrPs;
  838.     short                            ioFCBVRefNum;
  839.     long                            ioFCBClpSiz;
  840.     long                            ioFCBParID;
  841. };
  842. typedef struct FCBPBRec FCBPBRec;
  843.  
  844. typedef FCBPBRec *FCBPBPtr;
  845.  
  846. struct VCB {
  847.     QElemPtr                        qLink;
  848.     short                            qType;
  849.     short                            vcbFlags;
  850.     unsigned short                    vcbSigWord;
  851.     unsigned long                    vcbCrDate;
  852.     unsigned long                    vcbLsMod;
  853.     short                            vcbAtrb;
  854.     unsigned short                    vcbNmFls;
  855.     short                            vcbVBMSt;
  856.     short                            vcbAllocPtr;
  857.     unsigned short                    vcbNmAlBlks;
  858.     long                            vcbAlBlkSiz;
  859.     long                            vcbClpSiz;
  860.     short                            vcbAlBlSt;
  861.     long                            vcbNxtCNID;
  862.     unsigned short                    vcbFreeBks;
  863.     Str27                            vcbVN;
  864.     short                            vcbDrvNum;
  865.     short                            vcbDRefNum;
  866.     short                            vcbFSID;
  867.     short                            vcbVRefNum;
  868.     Ptr                                vcbMAdr;
  869.     Ptr                                vcbBufAdr;
  870.     short                            vcbMLen;
  871.     short                            vcbDirIndex;
  872.     short                            vcbDirBlk;
  873.     unsigned long                    vcbVolBkUp;
  874.     unsigned short                    vcbVSeqNum;
  875.     long                            vcbWrCnt;
  876.     long                            vcbXTClpSiz;
  877.     long                            vcbCTClpSiz;
  878.     unsigned short                    vcbNmRtDirs;
  879.     long                            vcbFilCnt;
  880.     long                            vcbDirCnt;
  881.     long                            vcbFndrInfo[8];
  882.     unsigned short                    vcbVCSize;
  883.     unsigned short                    vcbVBMCSiz;
  884.     unsigned short                    vcbCtlCSiz;
  885.     unsigned short                    vcbXTAlBlks;
  886.     unsigned short                    vcbCTAlBlks;
  887.     short                            vcbXTRef;
  888.     short                            vcbCTRef;
  889.     Ptr                                vcbCtlBuf;
  890.     long                            vcbDirIDM;
  891.     short                            vcbOffsM;
  892. };
  893. typedef struct VCB VCB;
  894.  
  895. struct DrvQEl {
  896.     QElemPtr                        qLink;
  897.     short                            qType;
  898.     short                            dQDrive;
  899.     short                            dQRefNum;
  900.     short                            dQFSID;
  901.     unsigned short                    dQDrvSz;
  902.     unsigned short                    dQDrvSz2;
  903. };
  904. typedef struct DrvQEl DrvQEl;
  905.  
  906. typedef DrvQEl *DrvQElPtr;
  907.  
  908. enum {
  909.     uppIOCompletionProcInfo = kRegisterBased
  910.          | REGISTER_ROUTINE_PARAMETER(1, kRegisterA0, SIZE_CODE(sizeof(ParmBlkPtr)))
  911. };
  912.  
  913. #if GENERATINGCFM
  914. #define NewIOCompletionProc(userRoutine)        \
  915.         (IOCompletionUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppIOCompletionProcInfo, GetCurrentArchitecture())
  916. #else
  917. #define NewIOCompletionProc(userRoutine)        \
  918.         ((IOCompletionUPP) (userRoutine))
  919. #endif
  920.  
  921. #if GENERATINGCFM
  922. #define CallIOCompletionProc(userRoutine, paramBlock)        \
  923.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppIOCompletionProcInfo, (paramBlock))
  924. #else
  925. /* (*IOCompletionProcPtr) cannot be called from a high-level language without the Mixed Mode Manager */
  926. #endif
  927.  
  928. #define PBOpen(pb, async) ((async) ? PBOpenAsync(pb) : PBOpenSync(pb))
  929.  
  930. #if !GENERATINGCFM
  931. #pragma parameter __D0 PBOpenSync(__A0)
  932. #endif
  933. extern pascal OSErr PBOpenSync(ParmBlkPtr paramBlock)
  934.  ONEWORDINLINE(0xA000);
  935.  
  936. #if !GENERATINGCFM
  937. #pragma parameter __D0 PBOpenAsync(__A0)
  938. #endif
  939. extern pascal OSErr PBOpenAsync(ParmBlkPtr paramBlock)
  940.  ONEWORDINLINE(0xA400);
  941.  
  942. #if !GENERATINGCFM
  943. #pragma parameter __D0 PBOpenImmed(__A0)
  944. #endif
  945. extern pascal OSErr PBOpenImmed(ParmBlkPtr paramBlock)
  946.  ONEWORDINLINE(0xA200);
  947. #define PBClose(pb, async) ((async) ? PBCloseAsync(pb) : PBCloseSync(pb))
  948.  
  949. #if !GENERATINGCFM
  950. #pragma parameter __D0 PBCloseSync(__A0)
  951. #endif
  952. extern pascal OSErr PBCloseSync(ParmBlkPtr paramBlock)
  953.  ONEWORDINLINE(0xA001);
  954.  
  955. #if !GENERATINGCFM
  956. #pragma parameter __D0 PBCloseAsync(__A0)
  957. #endif
  958. extern pascal OSErr PBCloseAsync(ParmBlkPtr paramBlock)
  959.  ONEWORDINLINE(0xA401);
  960.  
  961. #if !GENERATINGCFM
  962. #pragma parameter __D0 PBCloseImmed(__A0)
  963. #endif
  964. extern pascal OSErr PBCloseImmed(ParmBlkPtr paramBlock)
  965.  ONEWORDINLINE(0xA201);
  966. #define PBRead(pb, async) ((async) ? PBReadAsync(pb) : PBReadSync(pb))
  967.  
  968. #if !GENERATINGCFM
  969. #pragma parameter __D0 PBReadSync(__A0)
  970. #endif
  971. extern pascal OSErr PBReadSync(ParmBlkPtr paramBlock)
  972.  ONEWORDINLINE(0xA002);
  973.  
  974. #if !GENERATINGCFM
  975. #pragma parameter __D0 PBReadAsync(__A0)
  976. #endif
  977. extern pascal OSErr PBReadAsync(ParmBlkPtr paramBlock)
  978.  ONEWORDINLINE(0xA402);
  979.  
  980. #if !GENERATINGCFM
  981. #pragma parameter __D0 PBReadImmed(__A0)
  982. #endif
  983. extern pascal OSErr PBReadImmed(ParmBlkPtr paramBlock)
  984.  ONEWORDINLINE(0xA202);
  985. #define PBWrite(pb, async) ((async) ? PBWriteAsync(pb) : PBWriteSync(pb))
  986.  
  987. #if !GENERATINGCFM
  988. #pragma parameter __D0 PBWriteSync(__A0)
  989. #endif
  990. extern pascal OSErr PBWriteSync(ParmBlkPtr paramBlock)
  991.  ONEWORDINLINE(0xA003);
  992.  
  993. #if !GENERATINGCFM
  994. #pragma parameter __D0 PBWriteAsync(__A0)
  995. #endif
  996. extern pascal OSErr PBWriteAsync(ParmBlkPtr paramBlock)
  997.  ONEWORDINLINE(0xA403);
  998.  
  999. #if !GENERATINGCFM
  1000. #pragma parameter __D0 PBWriteImmed(__A0)
  1001. #endif
  1002. extern pascal OSErr PBWriteImmed(ParmBlkPtr paramBlock)
  1003.  ONEWORDINLINE(0xA203);
  1004. #define PBGetVInfo(pb, async) ((async) ? PBGetVInfoAsync(pb) : PBGetVInfoSync(pb))
  1005.  
  1006. #if !GENERATINGCFM
  1007. #pragma parameter __D0 PBGetVInfoSync(__A0)
  1008. #endif
  1009. extern pascal OSErr PBGetVInfoSync(ParmBlkPtr paramBlock)
  1010.  ONEWORDINLINE(0xA007);
  1011.  
  1012. #if !GENERATINGCFM
  1013. #pragma parameter __D0 PBGetVInfoAsync(__A0)
  1014. #endif
  1015. extern pascal OSErr PBGetVInfoAsync(ParmBlkPtr paramBlock)
  1016.  ONEWORDINLINE(0xA407);
  1017. #define PBGetVol(pb, async) ((async) ? PBGetVolAsync(pb) : PBGetVolSync(pb))
  1018.  
  1019. #if !GENERATINGCFM
  1020. #pragma parameter __D0 PBGetVolSync(__A0)
  1021. #endif
  1022. extern pascal OSErr PBGetVolSync(ParmBlkPtr paramBlock)
  1023.  ONEWORDINLINE(0xA014);
  1024.  
  1025. #if !GENERATINGCFM
  1026. #pragma parameter __D0 PBGetVolAsync(__A0)
  1027. #endif
  1028. extern pascal OSErr PBGetVolAsync(ParmBlkPtr paramBlock)
  1029.  ONEWORDINLINE(0xA414);
  1030. #define PBSetVol(pb, async) ((async) ? PBSetVolAsync(pb) : PBSetVolSync(pb))
  1031.  
  1032. #if !GENERATINGCFM
  1033. #pragma parameter __D0 PBSetVolSync(__A0)
  1034. #endif
  1035. extern pascal OSErr PBSetVolSync(ParmBlkPtr paramBlock)
  1036.  ONEWORDINLINE(0xA015);
  1037.  
  1038. #if !GENERATINGCFM
  1039. #pragma parameter __D0 PBSetVolAsync(__A0)
  1040. #endif
  1041. extern pascal OSErr PBSetVolAsync(ParmBlkPtr paramBlock)
  1042.  ONEWORDINLINE(0xA415);
  1043. #define PBFlushVol(pb, async) ((async) ? PBFlushVolAsync(pb) : PBFlushVolSync(pb))
  1044.  
  1045. #if !GENERATINGCFM
  1046. #pragma parameter __D0 PBFlushVolSync(__A0)
  1047. #endif
  1048. extern pascal OSErr PBFlushVolSync(ParmBlkPtr paramBlock)
  1049.  ONEWORDINLINE(0xA013);
  1050.  
  1051. #if !GENERATINGCFM
  1052. #pragma parameter __D0 PBFlushVolAsync(__A0)
  1053. #endif
  1054. extern pascal OSErr PBFlushVolAsync(ParmBlkPtr paramBlock)
  1055.  ONEWORDINLINE(0xA413);
  1056. #define PBCreate(pb, async) ((async) ? PBCreateAsync(pb) : PBCreateSync(pb))
  1057.  
  1058. #if !GENERATINGCFM
  1059. #pragma parameter __D0 PBCreateSync(__A0)
  1060. #endif
  1061. extern pascal OSErr PBCreateSync(ParmBlkPtr paramBlock)
  1062.  ONEWORDINLINE(0xA008);
  1063.  
  1064. #if !GENERATINGCFM
  1065. #pragma parameter __D0 PBCreateAsync(__A0)
  1066. #endif
  1067. extern pascal OSErr PBCreateAsync(ParmBlkPtr paramBlock)
  1068.  ONEWORDINLINE(0xA408);
  1069. #define PBDelete(pb, async) ((async) ? PBDeleteAsync(pb) : PBDeleteSync(pb))
  1070.  
  1071. #if !GENERATINGCFM
  1072. #pragma parameter __D0 PBDeleteSync(__A0)
  1073. #endif
  1074. extern pascal OSErr PBDeleteSync(ParmBlkPtr paramBlock)
  1075.  ONEWORDINLINE(0xA009);
  1076.  
  1077. #if !GENERATINGCFM
  1078. #pragma parameter __D0 PBDeleteAsync(__A0)
  1079. #endif
  1080. extern pascal OSErr PBDeleteAsync(ParmBlkPtr paramBlock)
  1081.  ONEWORDINLINE(0xA409);
  1082. #define PBOpenDF(pb, async) ((async) ? PBOpenDFAsync(pb) : PBOpenDFSync(pb))
  1083.  
  1084. #if !GENERATINGCFM
  1085. #pragma parameter __D0 PBOpenDFSync(__A0)
  1086. #endif
  1087. extern pascal OSErr PBOpenDFSync(ParmBlkPtr paramBlock)
  1088.  TWOWORDINLINE(0x701A, 0xA060);
  1089.  
  1090. #if !GENERATINGCFM
  1091. #pragma parameter __D0 PBOpenDFAsync(__A0)
  1092. #endif
  1093. extern pascal OSErr PBOpenDFAsync(ParmBlkPtr paramBlock)
  1094.  TWOWORDINLINE(0x701A, 0xA460);
  1095. #define PBOpenRF(pb, async) ((async) ? PBOpenRFAsync(pb) : PBOpenRFSync(pb))
  1096.  
  1097. #if !GENERATINGCFM
  1098. #pragma parameter __D0 PBOpenRFSync(__A0)
  1099. #endif
  1100. extern pascal OSErr PBOpenRFSync(ParmBlkPtr paramBlock)
  1101.  ONEWORDINLINE(0xA00A);
  1102.  
  1103. #if !GENERATINGCFM
  1104. #pragma parameter __D0 PBOpenRFAsync(__A0)
  1105. #endif
  1106. extern pascal OSErr PBOpenRFAsync(ParmBlkPtr paramBlock)
  1107.  ONEWORDINLINE(0xA40A);
  1108. #define PBRename(pb, async) ((async) ? PBRenameAsync(pb) : PBRenameSync(pb))
  1109.  
  1110. #if !GENERATINGCFM
  1111. #pragma parameter __D0 PBRenameSync(__A0)
  1112. #endif
  1113. extern pascal OSErr PBRenameSync(ParmBlkPtr paramBlock)
  1114.  ONEWORDINLINE(0xA00B);
  1115.  
  1116. #if !GENERATINGCFM
  1117. #pragma parameter __D0 PBRenameAsync(__A0)
  1118. #endif
  1119. extern pascal OSErr PBRenameAsync(ParmBlkPtr paramBlock)
  1120.  ONEWORDINLINE(0xA40B);
  1121. #define PBGetFInfo(pb, async) ((async) ? PBGetFInfoAsync(pb) : PBGetFInfoSync(pb))
  1122.  
  1123. #if !GENERATINGCFM
  1124. #pragma parameter __D0 PBGetFInfoSync(__A0)
  1125. #endif
  1126. extern pascal OSErr PBGetFInfoSync(ParmBlkPtr paramBlock)
  1127.  ONEWORDINLINE(0xA00C);
  1128.  
  1129. #if !GENERATINGCFM
  1130. #pragma parameter __D0 PBGetFInfoAsync(__A0)
  1131. #endif
  1132. extern pascal OSErr PBGetFInfoAsync(ParmBlkPtr paramBlock)
  1133.  ONEWORDINLINE(0xA40C);
  1134. #define PBSetFInfo(pb, async) ((async) ? PBSetFInfoAsync(pb) : PBSetFInfoSync(pb))
  1135.  
  1136. #if !GENERATINGCFM
  1137. #pragma parameter __D0 PBSetFInfoSync(__A0)
  1138. #endif
  1139. extern pascal OSErr PBSetFInfoSync(ParmBlkPtr paramBlock)
  1140.  ONEWORDINLINE(0xA00D);
  1141.  
  1142. #if !GENERATINGCFM
  1143. #pragma parameter __D0 PBSetFInfoAsync(__A0)
  1144. #endif
  1145. extern pascal OSErr PBSetFInfoAsync(ParmBlkPtr paramBlock)
  1146.  ONEWORDINLINE(0xA40D);
  1147. #define PBSetFLock(pb, async) ((async) ? PBSetFLockAsync(pb) : PBSetFLockSync(pb))
  1148.  
  1149. #if !GENERATINGCFM
  1150. #pragma parameter __D0 PBSetFLockSync(__A0)
  1151. #endif
  1152. extern pascal OSErr PBSetFLockSync(ParmBlkPtr paramBlock)
  1153.  ONEWORDINLINE(0xA041);
  1154.  
  1155. #if !GENERATINGCFM
  1156. #pragma parameter __D0 PBSetFLockAsync(__A0)
  1157. #endif
  1158. extern pascal OSErr PBSetFLockAsync(ParmBlkPtr paramBlock)
  1159.  ONEWORDINLINE(0xA441);
  1160. #define PBRstFLock(pb, async) ((async) ? PBRstFLockAsync(pb) : PBRstFLockSync(pb))
  1161.  
  1162. #if !GENERATINGCFM
  1163. #pragma parameter __D0 PBRstFLockSync(__A0)
  1164. #endif
  1165. extern pascal OSErr PBRstFLockSync(ParmBlkPtr paramBlock)
  1166.  ONEWORDINLINE(0xA042);
  1167.  
  1168. #if !GENERATINGCFM
  1169. #pragma parameter __D0 PBRstFLockAsync(__A0)
  1170. #endif
  1171. extern pascal OSErr PBRstFLockAsync(ParmBlkPtr paramBlock)
  1172.  ONEWORDINLINE(0xA442);
  1173. #define PBSetFVers(pb, async) ((async) ? PBSetFVersAsync(pb) : PBSetFVersSync(pb))
  1174.  
  1175. #if !GENERATINGCFM
  1176. #pragma parameter __D0 PBSetFVersSync(__A0)
  1177. #endif
  1178. extern pascal OSErr PBSetFVersSync(ParmBlkPtr paramBlock)
  1179.  ONEWORDINLINE(0xA043);
  1180.  
  1181. #if !GENERATINGCFM
  1182. #pragma parameter __D0 PBSetFVersAsync(__A0)
  1183. #endif
  1184. extern pascal OSErr PBSetFVersAsync(ParmBlkPtr paramBlock)
  1185.  ONEWORDINLINE(0xA443);
  1186. #define PBAllocate(pb, async) ((async) ? PBAllocateAsync(pb) : PBAllocateSync(pb))
  1187.  
  1188. #if !GENERATINGCFM
  1189. #pragma parameter __D0 PBAllocateSync(__A0)
  1190. #endif
  1191. extern pascal OSErr PBAllocateSync(ParmBlkPtr paramBlock)
  1192.  ONEWORDINLINE(0xA010);
  1193.  
  1194. #if !GENERATINGCFM
  1195. #pragma parameter __D0 PBAllocateAsync(__A0)
  1196. #endif
  1197. extern pascal OSErr PBAllocateAsync(ParmBlkPtr paramBlock)
  1198.  ONEWORDINLINE(0xA410);
  1199. #define PBGetEOF(pb, async) ((async) ? PBGetEOFAsync(pb) : PBGetEOFSync(pb))
  1200.  
  1201. #if !GENERATINGCFM
  1202. #pragma parameter __D0 PBGetEOFSync(__A0)
  1203. #endif
  1204. extern pascal OSErr PBGetEOFSync(ParmBlkPtr paramBlock)
  1205.  ONEWORDINLINE(0xA011);
  1206.  
  1207. #if !GENERATINGCFM
  1208. #pragma parameter __D0 PBGetEOFAsync(__A0)
  1209. #endif
  1210. extern pascal OSErr PBGetEOFAsync(ParmBlkPtr paramBlock)
  1211.  ONEWORDINLINE(0xA411);
  1212. #define PBSetEOF(pb, async) ((async) ? PBSetEOFAsync(pb) : PBSetEOFSync(pb))
  1213.  
  1214. #if !GENERATINGCFM
  1215. #pragma parameter __D0 PBSetEOFSync(__A0)
  1216. #endif
  1217. extern pascal OSErr PBSetEOFSync(ParmBlkPtr paramBlock)
  1218.  ONEWORDINLINE(0xA012);
  1219.  
  1220. #if !GENERATINGCFM
  1221. #pragma parameter __D0 PBSetEOFAsync(__A0)
  1222. #endif
  1223. extern pascal OSErr PBSetEOFAsync(ParmBlkPtr paramBlock)
  1224.  ONEWORDINLINE(0xA412);
  1225. #define PBGetFPos(pb, async) ((async) ? PBGetFPosAsync(pb) : PBGetFPosSync(pb))
  1226.  
  1227. #if !GENERATINGCFM
  1228. #pragma parameter __D0 PBGetFPosSync(__A0)
  1229. #endif
  1230. extern pascal OSErr PBGetFPosSync(ParmBlkPtr paramBlock)
  1231.  ONEWORDINLINE(0xA018);
  1232.  
  1233. #if !GENERATINGCFM
  1234. #pragma parameter __D0 PBGetFPosAsync(__A0)
  1235. #endif
  1236. extern pascal OSErr PBGetFPosAsync(ParmBlkPtr paramBlock)
  1237.  ONEWORDINLINE(0xA418);
  1238. #define PBSetFPos(pb, async) ((async) ? PBSetFPosAsync(pb) : PBSetFPosSync(pb))
  1239.  
  1240. #if !GENERATINGCFM
  1241. #pragma parameter __D0 PBSetFPosSync(__A0)
  1242. #endif
  1243. extern pascal OSErr PBSetFPosSync(ParmBlkPtr paramBlock)
  1244.  ONEWORDINLINE(0xA044);
  1245.  
  1246. #if !GENERATINGCFM
  1247. #pragma parameter __D0 PBSetFPosAsync(__A0)
  1248. #endif
  1249. extern pascal OSErr PBSetFPosAsync(ParmBlkPtr paramBlock)
  1250.  ONEWORDINLINE(0xA444);
  1251. #define PBFlushFile(pb, async) ((async) ? PBFlushFileAsync(pb) : PBFlushFileSync(pb))
  1252.  
  1253. #if !GENERATINGCFM
  1254. #pragma parameter __D0 PBFlushFileSync(__A0)
  1255. #endif
  1256. extern pascal OSErr PBFlushFileSync(ParmBlkPtr paramBlock)
  1257.  ONEWORDINLINE(0xA045);
  1258.  
  1259. #if !GENERATINGCFM
  1260. #pragma parameter __D0 PBFlushFileAsync(__A0)
  1261. #endif
  1262. extern pascal OSErr PBFlushFileAsync(ParmBlkPtr paramBlock)
  1263.  ONEWORDINLINE(0xA445);
  1264.  
  1265. #if !GENERATINGCFM
  1266. #pragma parameter __D0 PBMountVol(__A0)
  1267. #endif
  1268. extern pascal OSErr PBMountVol(ParmBlkPtr paramBlock)
  1269.  ONEWORDINLINE(0xA00F);
  1270.  
  1271. #if !GENERATINGCFM
  1272. #pragma parameter __D0 PBUnmountVol(__A0)
  1273. #endif
  1274. extern pascal OSErr PBUnmountVol(ParmBlkPtr paramBlock)
  1275.  ONEWORDINLINE(0xA00E);
  1276.  
  1277. #if !GENERATINGCFM
  1278. #pragma parameter __D0 PBEject(__A0)
  1279. #endif
  1280. extern pascal OSErr PBEject(ParmBlkPtr paramBlock)
  1281.  ONEWORDINLINE(0xA017);
  1282.  
  1283. #if !GENERATINGCFM
  1284. #pragma parameter __D0 PBOffLine(__A0)
  1285. #endif
  1286. extern pascal OSErr PBOffLine(ParmBlkPtr paramBlock)
  1287.  ONEWORDINLINE(0xA035);
  1288. #define PBCatSearch(pb, async) ((async) ? PBCatSearchAsync(pb) : PBCatSearchSync(pb))
  1289.  
  1290. #if !GENERATINGCFM
  1291. #pragma parameter __D0 PBCatSearchSync(__A0)
  1292. #endif
  1293. extern pascal OSErr PBCatSearchSync(CSParamPtr paramBlock)
  1294.  TWOWORDINLINE(0x7018, 0xA260);
  1295.  
  1296. #if !GENERATINGCFM
  1297. #pragma parameter __D0 PBCatSearchAsync(__A0)
  1298. #endif
  1299. extern pascal OSErr PBCatSearchAsync(CSParamPtr paramBlock)
  1300.  TWOWORDINLINE(0x7018, 0xA660);
  1301. extern pascal OSErr SetVol(ConstStr63Param volName, short vRefNum);
  1302. extern pascal OSErr UnmountVol(ConstStr63Param volName, short vRefNum);
  1303. extern pascal OSErr Eject(ConstStr63Param volName, short vRefNum);
  1304. extern pascal OSErr FlushVol(ConstStr63Param volName, short vRefNum);
  1305. extern pascal OSErr HSetVol(ConstStr63Param volName, short vRefNum, long dirID);
  1306. extern pascal void AddDrive(short drvrRefNum, short drvNum, DrvQElPtr qEl);
  1307. extern pascal OSErr FSOpen(ConstStr255Param fileName, short vRefNum, short *refNum);
  1308. extern pascal OSErr OpenDF(ConstStr255Param fileName, short vRefNum, short *refNum);
  1309. extern pascal OSErr FSClose(short refNum);
  1310. extern pascal OSErr FSRead(short refNum, long *count, void *buffPtr);
  1311. extern pascal OSErr FSWrite(short refNum, long *count, const void *buffPtr);
  1312. extern pascal OSErr GetVInfo(short drvNum, StringPtr volName, short *vRefNum, long *freeBytes);
  1313. extern pascal OSErr GetFInfo(ConstStr255Param fileName, short vRefNum, FInfo *fndrInfo);
  1314. extern pascal OSErr GetVol(StringPtr volName, short *vRefNum);
  1315. extern pascal OSErr Create(ConstStr255Param fileName, short vRefNum, OSType creator, OSType fileType);
  1316. extern pascal OSErr FSDelete(ConstStr255Param fileName, short vRefNum);
  1317. extern pascal OSErr OpenRF(ConstStr255Param fileName, short vRefNum, short *refNum);
  1318. extern pascal OSErr Rename(ConstStr255Param oldName, short vRefNum, ConstStr255Param newName);
  1319. extern pascal OSErr SetFInfo(ConstStr255Param fileName, short vRefNum, const FInfo *fndrInfo);
  1320. extern pascal OSErr SetFLock(ConstStr255Param fileName, short vRefNum);
  1321. extern pascal OSErr RstFLock(ConstStr255Param fileName, short vRefNum);
  1322. extern pascal OSErr Allocate(short refNum, long *count);
  1323. extern pascal OSErr GetEOF(short refNum, long *logEOF);
  1324. extern pascal OSErr SetEOF(short refNum, long logEOF);
  1325. extern pascal OSErr GetFPos(short refNum, long *filePos);
  1326. extern pascal OSErr SetFPos(short refNum, short posMode, long posOff);
  1327. extern pascal OSErr GetVRefNum(short fileRefNum, short *vRefNum);
  1328. #if CGLUESUPPORTED
  1329. extern OSErr fsopen(const char *fileName, short vRefNum, short *refNum);
  1330. extern OSErr getvinfo(short drvNum, const char *volName, short *vRefNum, long *freeBytes);
  1331. extern OSErr getfinfo(const char *fileName, short vRefNum, FInfo *fndrInfo);
  1332. extern OSErr getvol(const char *volName, short *vRefNum);
  1333. extern OSErr setvol(const char *volName, short vRefNum);
  1334. extern OSErr unmountvol(const char *volName, short vRefNum);
  1335. extern OSErr eject(const char *volName, short vRefNum);
  1336. extern OSErr flushvol(const char *volName, short vRefNum);
  1337. extern OSErr create(const char *fileName, short vRefNum, OSType creator, OSType fileType);
  1338. extern OSErr fsdelete(const char *fileName, short vRefNum);
  1339. extern OSErr openrf(const char *fileName, short vRefNum, short *refNum);
  1340. extern OSErr fsrename(const char *oldName, short vRefNum, const char *newName);
  1341. extern OSErr setfinfo(const char *fileName, short vRefNum, FInfo *fndrInfo);
  1342. extern OSErr setflock(const char *fileName, short vRefNum);
  1343. extern OSErr rstflock(const char *fileName, short vRefNum);
  1344. #endif
  1345. #define PBOpenWD(pb, async) ((async) ? PBOpenWDAsync(pb) : PBOpenWDSync(pb))
  1346.  
  1347. #if !GENERATINGCFM
  1348. #pragma parameter __D0 PBOpenWDSync(__A0)
  1349. #endif
  1350. extern pascal OSErr PBOpenWDSync(WDPBPtr paramBlock)
  1351.  TWOWORDINLINE(0x7001, 0xA260);
  1352.  
  1353. #if !GENERATINGCFM
  1354. #pragma parameter __D0 PBOpenWDAsync(__A0)
  1355. #endif
  1356. extern pascal OSErr PBOpenWDAsync(WDPBPtr paramBlock)
  1357.  TWOWORDINLINE(0x7001, 0xA660);
  1358. #define PBCloseWD(pb, async) ((async) ? PBCloseWDAsync(pb) : PBCloseWDSync(pb))
  1359.  
  1360. #if !GENERATINGCFM
  1361. #pragma parameter __D0 PBCloseWDSync(__A0)
  1362. #endif
  1363. extern pascal OSErr PBCloseWDSync(WDPBPtr paramBlock)
  1364.  TWOWORDINLINE(0x7002, 0xA260);
  1365.  
  1366. #if !GENERATINGCFM
  1367. #pragma parameter __D0 PBCloseWDAsync(__A0)
  1368. #endif
  1369. extern pascal OSErr PBCloseWDAsync(WDPBPtr paramBlock)
  1370.  TWOWORDINLINE(0x7002, 0xA660);
  1371. #define PBHSetVol(pb, async) ((async) ? PBHSetVolAsync(pb) : PBHSetVolSync(pb))
  1372.  
  1373. #if !GENERATINGCFM
  1374. #pragma parameter __D0 PBHSetVolSync(__A0)
  1375. #endif
  1376. extern pascal OSErr PBHSetVolSync(WDPBPtr paramBlock)
  1377.  ONEWORDINLINE(0xA215);
  1378.  
  1379. #if !GENERATINGCFM
  1380. #pragma parameter __D0 PBHSetVolAsync(__A0)
  1381. #endif
  1382. extern pascal OSErr PBHSetVolAsync(WDPBPtr paramBlock)
  1383.  ONEWORDINLINE(0xA615);
  1384. #define PBHGetVol(pb, async) ((async) ? PBHGetVolAsync(pb) : PBHGetVolSync(pb))
  1385.  
  1386. #if !GENERATINGCFM
  1387. #pragma parameter __D0 PBHGetVolSync(__A0)
  1388. #endif
  1389. extern pascal OSErr PBHGetVolSync(WDPBPtr paramBlock)
  1390.  ONEWORDINLINE(0xA214);
  1391.  
  1392. #if !GENERATINGCFM
  1393. #pragma parameter __D0 PBHGetVolAsync(__A0)
  1394. #endif
  1395. extern pascal OSErr PBHGetVolAsync(WDPBPtr paramBlock)
  1396.  ONEWORDINLINE(0xA614);
  1397. #define PBCatMove(pb, async) ((async) ? PBCatMoveAsync(pb) : PBCatMoveSync(pb))
  1398.  
  1399. #if !GENERATINGCFM
  1400. #pragma parameter __D0 PBCatMoveSync(__A0)
  1401. #endif
  1402. extern pascal OSErr PBCatMoveSync(CMovePBPtr paramBlock)
  1403.  TWOWORDINLINE(0x7005, 0xA260);
  1404.  
  1405. #if !GENERATINGCFM
  1406. #pragma parameter __D0 PBCatMoveAsync(__A0)
  1407. #endif
  1408. extern pascal OSErr PBCatMoveAsync(CMovePBPtr paramBlock)
  1409.  TWOWORDINLINE(0x7005, 0xA660);
  1410. #define PBDirCreate(pb, async) ((async) ? PBDirCreateAsync(pb) : PBDirCreateSync(pb))
  1411.  
  1412. #if !GENERATINGCFM
  1413. #pragma parameter __D0 PBDirCreateSync(__A0)
  1414. #endif
  1415. extern pascal OSErr PBDirCreateSync(HParmBlkPtr paramBlock)
  1416.  TWOWORDINLINE(0x7006, 0xA260);
  1417.  
  1418. #if !GENERATINGCFM
  1419. #pragma parameter __D0 PBDirCreateAsync(__A0)
  1420. #endif
  1421. extern pascal OSErr PBDirCreateAsync(HParmBlkPtr paramBlock)
  1422.  TWOWORDINLINE(0x7006, 0xA660);
  1423. #define PBGetWDInfo(pb, async) ((async) ? PBGetWDInfoAsync(pb) : PBGetWDInfoSync(pb))
  1424.  
  1425. #if !GENERATINGCFM
  1426. #pragma parameter __D0 PBGetWDInfoSync(__A0)
  1427. #endif
  1428. extern pascal OSErr PBGetWDInfoSync(WDPBPtr paramBlock)
  1429.  TWOWORDINLINE(0x7007, 0xA260);
  1430.  
  1431. #if !GENERATINGCFM
  1432. #pragma parameter __D0 PBGetWDInfoAsync(__A0)
  1433. #endif
  1434. extern pascal OSErr PBGetWDInfoAsync(WDPBPtr paramBlock)
  1435.  TWOWORDINLINE(0x7007, 0xA660);
  1436. #define PBGetFCBInfo(pb, async) ((async) ? PBGetFCBInfoAsync(pb) : PBGetFCBInfoSync(pb))
  1437.  
  1438. #if !GENERATINGCFM
  1439. #pragma parameter __D0 PBGetFCBInfoSync(__A0)
  1440. #endif
  1441. extern pascal OSErr PBGetFCBInfoSync(FCBPBPtr paramBlock)
  1442.  TWOWORDINLINE(0x7008, 0xA260);
  1443.  
  1444. #if !GENERATINGCFM
  1445. #pragma parameter __D0 PBGetFCBInfoAsync(__A0)
  1446. #endif
  1447. extern pascal OSErr PBGetFCBInfoAsync(FCBPBPtr paramBlock)
  1448.  TWOWORDINLINE(0x7008, 0xA660);
  1449. #define PBGetCatInfo(pb, async) ((async) ? PBGetCatInfoAsync(pb) : PBGetCatInfoSync(pb))
  1450.  
  1451. #if !GENERATINGCFM
  1452. #pragma parameter __D0 PBGetCatInfoSync(__A0)
  1453. #endif
  1454. extern pascal OSErr PBGetCatInfoSync(CInfoPBPtr paramBlock)
  1455.  TWOWORDINLINE(0x7009, 0xA260);
  1456.  
  1457. #if !GENERATINGCFM
  1458. #pragma parameter __D0 PBGetCatInfoAsync(__A0)
  1459. #endif
  1460. extern pascal OSErr PBGetCatInfoAsync(CInfoPBPtr paramBlock)
  1461.  TWOWORDINLINE(0x7009, 0xA660);
  1462. #define PBSetCatInfo(pb, async) ((async) ? PBSetCatInfoAsync(pb) : PBSetCatInfoSync(pb))
  1463.  
  1464. #if !GENERATINGCFM
  1465. #pragma parameter __D0 PBSetCatInfoSync(__A0)
  1466. #endif
  1467. extern pascal OSErr PBSetCatInfoSync(CInfoPBPtr paramBlock)
  1468.  TWOWORDINLINE(0x700A, 0xA260);
  1469.  
  1470. #if !GENERATINGCFM
  1471. #pragma parameter __D0 PBSetCatInfoAsync(__A0)
  1472. #endif
  1473. extern pascal OSErr PBSetCatInfoAsync(CInfoPBPtr paramBlock)
  1474.  TWOWORDINLINE(0x700A, 0xA660);
  1475. #define PBAllocContig(pb, async) ((async) ? PBAllocContigAsync(pb) : PBAllocContigSync(pb))
  1476.  
  1477. #if !GENERATINGCFM
  1478. #pragma parameter __D0 PBAllocContigSync(__A0)
  1479. #endif
  1480. extern pascal OSErr PBAllocContigSync(ParmBlkPtr paramBlock)
  1481.  ONEWORDINLINE(0xA210);
  1482.  
  1483. #if !GENERATINGCFM
  1484. #pragma parameter __D0 PBAllocContigAsync(__A0)
  1485. #endif
  1486. extern pascal OSErr PBAllocContigAsync(ParmBlkPtr paramBlock)
  1487.  ONEWORDINLINE(0xA610);
  1488. #define PBLockRange(pb, async) ((async) ? PBLockRangeAsync(pb) : PBLockRangeSync(pb))
  1489.  
  1490. #if !GENERATINGCFM
  1491. #pragma parameter __D0 PBLockRangeSync(__A0)
  1492. #endif
  1493. extern pascal OSErr PBLockRangeSync(ParmBlkPtr paramBlock)
  1494.  TWOWORDINLINE(0x7010, 0xA260);
  1495.  
  1496. #if !GENERATINGCFM
  1497. #pragma parameter __D0 PBLockRangeAsync(__A0)
  1498. #endif
  1499. extern pascal OSErr PBLockRangeAsync(ParmBlkPtr paramBlock)
  1500.  TWOWORDINLINE(0x7010, 0xA660);
  1501. #define PBUnlockRange(pb, async) ((async) ? PBUnlockRangeAsync(pb) : PBUnlockRangeSync(pb))
  1502.  
  1503. #if !GENERATINGCFM
  1504. #pragma parameter __D0 PBUnlockRangeSync(__A0)
  1505. #endif
  1506. extern pascal OSErr PBUnlockRangeSync(ParmBlkPtr paramBlock)
  1507.  TWOWORDINLINE(0x7011, 0xA260);
  1508.  
  1509. #if !GENERATINGCFM
  1510. #pragma parameter __D0 PBUnlockRangeAsync(__A0)
  1511. #endif
  1512. extern pascal OSErr PBUnlockRangeAsync(ParmBlkPtr paramBlock)
  1513.  TWOWORDINLINE(0x7011, 0xA660);
  1514. #define PBSetVInfo(pb, async) ((async) ? PBSetVInfoAsync(pb) : PBSetVInfoSync(pb))
  1515.  
  1516. #if !GENERATINGCFM
  1517. #pragma parameter __D0 PBSetVInfoSync(__A0)
  1518. #endif
  1519. extern pascal OSErr PBSetVInfoSync(HParmBlkPtr paramBlock)
  1520.  TWOWORDINLINE(0x700B, 0xA260);
  1521.  
  1522. #if !GENERATINGCFM
  1523. #pragma parameter __D0 PBSetVInfoAsync(__A0)
  1524. #endif
  1525. extern pascal OSErr PBSetVInfoAsync(HParmBlkPtr paramBlock)
  1526.  TWOWORDINLINE(0x700B, 0xA660);
  1527. #define PBHGetVInfo(pb, async) ((async) ? PBHGetVInfoAsync(pb) : PBHGetVInfoSync(pb))
  1528.  
  1529. #if !GENERATINGCFM
  1530. #pragma parameter __D0 PBHGetVInfoSync(__A0)
  1531. #endif
  1532. extern pascal OSErr PBHGetVInfoSync(HParmBlkPtr paramBlock)
  1533.  ONEWORDINLINE(0xA207);
  1534.  
  1535. #if !GENERATINGCFM
  1536. #pragma parameter __D0 PBHGetVInfoAsync(__A0)
  1537. #endif
  1538. extern pascal OSErr PBHGetVInfoAsync(HParmBlkPtr paramBlock)
  1539.  ONEWORDINLINE(0xA607);
  1540. #define PBHOpen(pb, async) ((async) ? PBHOpenAsync(pb) : PBHOpenSync(pb))
  1541.  
  1542. #if !GENERATINGCFM
  1543. #pragma parameter __D0 PBHOpenSync(__A0)
  1544. #endif
  1545. extern pascal OSErr PBHOpenSync(HParmBlkPtr paramBlock)
  1546.  ONEWORDINLINE(0xA200);
  1547.  
  1548. #if !GENERATINGCFM
  1549. #pragma parameter __D0 PBHOpenAsync(__A0)
  1550. #endif
  1551. extern pascal OSErr PBHOpenAsync(HParmBlkPtr paramBlock)
  1552.  ONEWORDINLINE(0xA600);
  1553. #define PBHOpenRF(pb, async) ((async) ? PBHOpenRFAsync(pb) : PBHOpenRFSync(pb))
  1554.  
  1555. #if !GENERATINGCFM
  1556. #pragma parameter __D0 PBHOpenRFSync(__A0)
  1557. #endif
  1558. extern pascal OSErr PBHOpenRFSync(HParmBlkPtr paramBlock)
  1559.  ONEWORDINLINE(0xA20A);
  1560.  
  1561. #if !GENERATINGCFM
  1562. #pragma parameter __D0 PBHOpenRFAsync(__A0)
  1563. #endif
  1564. extern pascal OSErr PBHOpenRFAsync(HParmBlkPtr paramBlock)
  1565.  ONEWORDINLINE(0xA60A);
  1566. #define PBHOpenDF(pb, async) ((async) ? PBHOpenDFAsync(pb) : PBHOpenDFSync(pb))
  1567.  
  1568. #if !GENERATINGCFM
  1569. #pragma parameter __D0 PBHOpenDFSync(__A0)
  1570. #endif
  1571. extern pascal OSErr PBHOpenDFSync(HParmBlkPtr paramBlock)
  1572.  TWOWORDINLINE(0x701A, 0xA260);
  1573.  
  1574. #if !GENERATINGCFM
  1575. #pragma parameter __D0 PBHOpenDFAsync(__A0)
  1576. #endif
  1577. extern pascal OSErr PBHOpenDFAsync(HParmBlkPtr paramBlock)
  1578.  TWOWORDINLINE(0x701A, 0xA660);
  1579. #define PBHCreate(pb, async) ((async) ? PBHCreateAsync(pb) : PBHCreateSync(pb))
  1580.  
  1581. #if !GENERATINGCFM
  1582. #pragma parameter __D0 PBHCreateSync(__A0)
  1583. #endif
  1584. extern pascal OSErr PBHCreateSync(HParmBlkPtr paramBlock)
  1585.  ONEWORDINLINE(0xA208);
  1586.  
  1587. #if !GENERATINGCFM
  1588. #pragma parameter __D0 PBHCreateAsync(__A0)
  1589. #endif
  1590. extern pascal OSErr PBHCreateAsync(HParmBlkPtr paramBlock)
  1591.  ONEWORDINLINE(0xA608);
  1592. #define PBHDelete(pb, async) ((async) ? PBHDeleteAsync(pb) : PBHDeleteSync(pb))
  1593.  
  1594. #if !GENERATINGCFM
  1595. #pragma parameter __D0 PBHDeleteSync(__A0)
  1596. #endif
  1597. extern pascal OSErr PBHDeleteSync(HParmBlkPtr paramBlock)
  1598.  ONEWORDINLINE(0xA209);
  1599.  
  1600. #if !GENERATINGCFM
  1601. #pragma parameter __D0 PBHDeleteAsync(__A0)
  1602. #endif
  1603. extern pascal OSErr PBHDeleteAsync(HParmBlkPtr paramBlock)
  1604.  ONEWORDINLINE(0xA609);
  1605. #define PBHRename(pb, async) ((async) ? PBHRenameAsync(pb) : PBHRenameSync(pb))
  1606.  
  1607. #if !GENERATINGCFM
  1608. #pragma parameter __D0 PBHRenameSync(__A0)
  1609. #endif
  1610. extern pascal OSErr PBHRenameSync(HParmBlkPtr paramBlock)
  1611.  ONEWORDINLINE(0xA20B);
  1612.  
  1613. #if !GENERATINGCFM
  1614. #pragma parameter __D0 PBHRenameAsync(__A0)
  1615. #endif
  1616. extern pascal OSErr PBHRenameAsync(HParmBlkPtr paramBlock)
  1617.  ONEWORDINLINE(0xA60B);
  1618. #define PBHRstFLock(pb, async) ((async) ? PBHRstFLockAsync(pb) : PBHRstFLockSync(pb))
  1619.  
  1620. #if !GENERATINGCFM
  1621. #pragma parameter __D0 PBHRstFLockSync(__A0)
  1622. #endif
  1623. extern pascal OSErr PBHRstFLockSync(HParmBlkPtr paramBlock)
  1624.  ONEWORDINLINE(0xA242);
  1625.  
  1626. #if !GENERATINGCFM
  1627. #pragma parameter __D0 PBHRstFLockAsync(__A0)
  1628. #endif
  1629. extern pascal OSErr PBHRstFLockAsync(HParmBlkPtr paramBlock)
  1630.  ONEWORDINLINE(0xA642);
  1631. #define PBHSetFLock(pb, async) ((async) ? PBHSetFLockAsync(pb) : PBHSetFLockSync(pb))
  1632.  
  1633. #if !GENERATINGCFM
  1634. #pragma parameter __D0 PBHSetFLockSync(__A0)
  1635. #endif
  1636. extern pascal OSErr PBHSetFLockSync(HParmBlkPtr paramBlock)
  1637.  ONEWORDINLINE(0xA241);
  1638.  
  1639. #if !GENERATINGCFM
  1640. #pragma parameter __D0 PBHSetFLockAsync(__A0)
  1641. #endif
  1642. extern pascal OSErr PBHSetFLockAsync(HParmBlkPtr paramBlock)
  1643.  ONEWORDINLINE(0xA641);
  1644. #define PBHGetFInfo(pb, async) ((async) ? PBHGetFInfoAsync(pb) : PBHGetFInfoSync(pb))
  1645.  
  1646. #if !GENERATINGCFM
  1647. #pragma parameter __D0 PBHGetFInfoSync(__A0)
  1648. #endif
  1649. extern pascal OSErr PBHGetFInfoSync(HParmBlkPtr paramBlock)
  1650.  ONEWORDINLINE(0xA20C);
  1651.  
  1652. #if !GENERATINGCFM
  1653. #pragma parameter __D0 PBHGetFInfoAsync(__A0)
  1654. #endif
  1655. extern pascal OSErr PBHGetFInfoAsync(HParmBlkPtr paramBlock)
  1656.  ONEWORDINLINE(0xA60C);
  1657. #define PBHSetFInfo(pb, async) ((async) ? PBHSetFInfoAsync(pb) : PBHSetFInfoSync(pb))
  1658.  
  1659. #if !GENERATINGCFM
  1660. #pragma parameter __D0 PBHSetFInfoSync(__A0)
  1661. #endif
  1662. extern pascal OSErr PBHSetFInfoSync(HParmBlkPtr paramBlock)
  1663.  ONEWORDINLINE(0xA20D);
  1664.  
  1665. #if !GENERATINGCFM
  1666. #pragma parameter __D0 PBHSetFInfoAsync(__A0)
  1667. #endif
  1668. extern pascal OSErr PBHSetFInfoAsync(HParmBlkPtr paramBlock)
  1669.  ONEWORDINLINE(0xA60D);
  1670. #define PBMakeFSSpec(pb, async) ((async) ? PBMakeFSSpecAsync(pb) : PBMakeFSSpecSync(pb))
  1671.  
  1672. #if !GENERATINGCFM
  1673. #pragma parameter __D0 PBMakeFSSpecSync(__A0)
  1674. #endif
  1675. extern pascal OSErr PBMakeFSSpecSync(HParmBlkPtr paramBlock)
  1676.  TWOWORDINLINE(0x701B, 0xA260);
  1677.  
  1678. #if !GENERATINGCFM
  1679. #pragma parameter __D0 PBMakeFSSpecAsync(__A0)
  1680. #endif
  1681. extern pascal OSErr PBMakeFSSpecAsync(HParmBlkPtr paramBlock)
  1682.  TWOWORDINLINE(0x701B, 0xA660);
  1683. extern pascal void FInitQueue(void)
  1684.  ONEWORDINLINE(0xA016);
  1685. extern pascal QHdrPtr GetFSQHdr(void)
  1686.  THREEWORDINLINE(0x2EBC, 0x0000, 0x0360);
  1687. extern pascal QHdrPtr GetDrvQHdr(void)
  1688.  THREEWORDINLINE(0x2EBC, 0x0000, 0x0308);
  1689. extern pascal QHdrPtr GetVCBQHdr(void)
  1690.  THREEWORDINLINE(0x2EBC, 0x0000, 0x0356);
  1691. extern pascal OSErr HGetVol(StringPtr volName, short *vRefNum, long *dirID);
  1692. extern pascal OSErr HOpen(short vRefNum, long dirID, ConstStr255Param fileName, SInt8 permission, short *refNum);
  1693. extern pascal OSErr HOpenDF(short vRefNum, long dirID, ConstStr255Param fileName, SInt8 permission, short *refNum);
  1694. extern pascal OSErr HOpenRF(short vRefNum, long dirID, ConstStr255Param fileName, SInt8 permission, short *refNum);
  1695. extern pascal OSErr AllocContig(short refNum, long *count);
  1696. extern pascal OSErr HCreate(short vRefNum, long dirID, ConstStr255Param fileName, OSType creator, OSType fileType);
  1697. extern pascal OSErr DirCreate(short vRefNum, long parentDirID, ConstStr255Param directoryName, long *createdDirID);
  1698. extern pascal OSErr HDelete(short vRefNum, long dirID, ConstStr255Param fileName);
  1699. extern pascal OSErr HGetFInfo(short vRefNum, long dirID, ConstStr255Param fileName, FInfo *fndrInfo);
  1700. extern pascal OSErr HSetFInfo(short vRefNum, long dirID, ConstStr255Param fileName, const FInfo *fndrInfo);
  1701. extern pascal OSErr HSetFLock(short vRefNum, long dirID, ConstStr255Param fileName);
  1702. extern pascal OSErr HRstFLock(short vRefNum, long dirID, ConstStr255Param fileName);
  1703. extern pascal OSErr HRename(short vRefNum, long dirID, ConstStr255Param oldName, ConstStr255Param newName);
  1704. extern pascal OSErr CatMove(short vRefNum, long dirID, ConstStr255Param oldName, long newDirID, ConstStr255Param newName);
  1705. extern pascal OSErr OpenWD(short vRefNum, long dirID, long procID, short *wdRefNum);
  1706. extern pascal OSErr CloseWD(short wdRefNum);
  1707. extern pascal OSErr GetWDInfo(short wdRefNum, short *vRefNum, long *dirID, long *procID);
  1708. /*  shared environment  */
  1709. #define PBHGetVolParms(pb, async) ((async) ? PBHGetVolParmsAsync(pb) : PBHGetVolParmsSync(pb))
  1710.  
  1711. #if !GENERATINGCFM
  1712. #pragma parameter __D0 PBHGetVolParmsSync(__A0)
  1713. #endif
  1714. extern pascal OSErr PBHGetVolParmsSync(HParmBlkPtr paramBlock)
  1715.  TWOWORDINLINE(0x7030, 0xA260);
  1716.  
  1717. #if !GENERATINGCFM
  1718. #pragma parameter __D0 PBHGetVolParmsAsync(__A0)
  1719. #endif
  1720. extern pascal OSErr PBHGetVolParmsAsync(HParmBlkPtr paramBlock)
  1721.  TWOWORDINLINE(0x7030, 0xA660);
  1722. #define PBHGetLogInInfo(pb, async) ((async) ? PBHGetLogInInfoAsync(pb) : PBHGetLogInInfoSync(pb))
  1723.  
  1724. #if !GENERATINGCFM
  1725. #pragma parameter __D0 PBHGetLogInInfoSync(__A0)
  1726. #endif
  1727. extern pascal OSErr PBHGetLogInInfoSync(HParmBlkPtr paramBlock)
  1728.  TWOWORDINLINE(0x7031, 0xA260);
  1729.  
  1730. #if !GENERATINGCFM
  1731. #pragma parameter __D0 PBHGetLogInInfoAsync(__A0)
  1732. #endif
  1733. extern pascal OSErr PBHGetLogInInfoAsync(HParmBlkPtr paramBlock)
  1734.  TWOWORDINLINE(0x7031, 0xA660);
  1735. #define PBHGetDirAccess(pb, async) ((async) ? PBHGetDirAccessAsync(pb) : PBHGetDirAccessSync(pb))
  1736.  
  1737. #if !GENERATINGCFM
  1738. #pragma parameter __D0 PBHGetDirAccessSync(__A0)
  1739. #endif
  1740. extern pascal OSErr PBHGetDirAccessSync(HParmBlkPtr paramBlock)
  1741.  TWOWORDINLINE(0x7032, 0xA260);
  1742.  
  1743. #if !GENERATINGCFM
  1744. #pragma parameter __D0 PBHGetDirAccessAsync(__A0)
  1745. #endif
  1746. extern pascal OSErr PBHGetDirAccessAsync(HParmBlkPtr paramBlock)
  1747.  TWOWORDINLINE(0x7032, 0xA660);
  1748. #define PBHSetDirAccess(pb, async) ((async) ? PBHSetDirAccessAsync(pb) : PBHSetDirAccessSync(pb))
  1749.  
  1750. #if !GENERATINGCFM
  1751. #pragma parameter __D0 PBHSetDirAccessSync(__A0)
  1752. #endif
  1753. extern pascal OSErr PBHSetDirAccessSync(HParmBlkPtr paramBlock)
  1754.  TWOWORDINLINE(0x7033, 0xA260);
  1755.  
  1756. #if !GENERATINGCFM
  1757. #pragma parameter __D0 PBHSetDirAccessAsync(__A0)
  1758. #endif
  1759. extern pascal OSErr PBHSetDirAccessAsync(HParmBlkPtr paramBlock)
  1760.  TWOWORDINLINE(0x7033, 0xA660);
  1761. #define PBHMapID(pb, async) ((async) ? PBHMapIDAsync(pb) : PBHMapIDSync(pb))
  1762.  
  1763. #if !GENERATINGCFM
  1764. #pragma parameter __D0 PBHMapIDSync(__A0)
  1765. #endif
  1766. extern pascal OSErr PBHMapIDSync(HParmBlkPtr paramBlock)
  1767.  TWOWORDINLINE(0x7034, 0xA260);
  1768.  
  1769. #if !GENERATINGCFM
  1770. #pragma parameter __D0 PBHMapIDAsync(__A0)
  1771. #endif
  1772. extern pascal OSErr PBHMapIDAsync(HParmBlkPtr paramBlock)
  1773.  TWOWORDINLINE(0x7034, 0xA660);
  1774. #define PBHMapName(pb, async) ((async) ? PBHMapNameAsync(pb) : PBHMapNameSync(pb))
  1775.  
  1776. #if !GENERATINGCFM
  1777. #pragma parameter __D0 PBHMapNameSync(__A0)
  1778. #endif
  1779. extern pascal OSErr PBHMapNameSync(HParmBlkPtr paramBlock)
  1780.  TWOWORDINLINE(0x7035, 0xA260);
  1781.  
  1782. #if !GENERATINGCFM
  1783. #pragma parameter __D0 PBHMapNameAsync(__A0)
  1784. #endif
  1785. extern pascal OSErr PBHMapNameAsync(HParmBlkPtr paramBlock)
  1786.  TWOWORDINLINE(0x7035, 0xA660);
  1787. #define PBHCopyFile(pb, async) ((async) ? PBHCopyFileAsync(pb) : PBHCopyFileSync(pb))
  1788.  
  1789. #if !GENERATINGCFM
  1790. #pragma parameter __D0 PBHCopyFileSync(__A0)
  1791. #endif
  1792. extern pascal OSErr PBHCopyFileSync(HParmBlkPtr paramBlock)
  1793.  TWOWORDINLINE(0x7036, 0xA260);
  1794.  
  1795. #if !GENERATINGCFM
  1796. #pragma parameter __D0 PBHCopyFileAsync(__A0)
  1797. #endif
  1798. extern pascal OSErr PBHCopyFileAsync(HParmBlkPtr paramBlock)
  1799.  TWOWORDINLINE(0x7036, 0xA660);
  1800. #define PBHMoveRename(pb, async) ((async) ? PBHMoveRenameAsync(pb) : PBHMoveRenameSync(pb))
  1801.  
  1802. #if !GENERATINGCFM
  1803. #pragma parameter __D0 PBHMoveRenameSync(__A0)
  1804. #endif
  1805. extern pascal OSErr PBHMoveRenameSync(HParmBlkPtr paramBlock)
  1806.  TWOWORDINLINE(0x7037, 0xA260);
  1807.  
  1808. #if !GENERATINGCFM
  1809. #pragma parameter __D0 PBHMoveRenameAsync(__A0)
  1810. #endif
  1811. extern pascal OSErr PBHMoveRenameAsync(HParmBlkPtr paramBlock)
  1812.  TWOWORDINLINE(0x7037, 0xA660);
  1813. #define PBHOpenDeny(pb, async) ((async) ? PBHOpenDenyAsync(pb) : PBHOpenDenySync(pb))
  1814.  
  1815. #if !GENERATINGCFM
  1816. #pragma parameter __D0 PBHOpenDenySync(__A0)
  1817. #endif
  1818. extern pascal OSErr PBHOpenDenySync(HParmBlkPtr paramBlock)
  1819.  TWOWORDINLINE(0x7038, 0xA260);
  1820.  
  1821. #if !GENERATINGCFM
  1822. #pragma parameter __D0 PBHOpenDenyAsync(__A0)
  1823. #endif
  1824. extern pascal OSErr PBHOpenDenyAsync(HParmBlkPtr paramBlock)
  1825.  TWOWORDINLINE(0x7038, 0xA660);
  1826. #define PBHOpenRFDeny(pb, async) ((async) ? PBHOpenRFDenyAsync(pb) : PBHOpenRFDenySync(pb))
  1827.  
  1828. #if !GENERATINGCFM
  1829. #pragma parameter __D0 PBHOpenRFDenySync(__A0)
  1830. #endif
  1831. extern pascal OSErr PBHOpenRFDenySync(HParmBlkPtr paramBlock)
  1832.  TWOWORDINLINE(0x7039, 0xA260);
  1833.  
  1834. #if !GENERATINGCFM
  1835. #pragma parameter __D0 PBHOpenRFDenyAsync(__A0)
  1836. #endif
  1837. extern pascal OSErr PBHOpenRFDenyAsync(HParmBlkPtr paramBlock)
  1838.  TWOWORDINLINE(0x7039, 0xA660);
  1839. #define PBExchangeFiles(pb, async) ((async) ? PBExchangeFilesAsync(pb) : PBExchangeFilesSync(pb))
  1840.  
  1841. #if !GENERATINGCFM
  1842. #pragma parameter __D0 PBExchangeFilesSync(__A0)
  1843. #endif
  1844. extern pascal OSErr PBExchangeFilesSync(HParmBlkPtr paramBlock)
  1845.  TWOWORDINLINE(0x7017, 0xA260);
  1846.  
  1847. #if !GENERATINGCFM
  1848. #pragma parameter __D0 PBExchangeFilesAsync(__A0)
  1849. #endif
  1850. extern pascal OSErr PBExchangeFilesAsync(HParmBlkPtr paramBlock)
  1851.  TWOWORDINLINE(0x7017, 0xA660);
  1852. #define PBCreateFileIDRef(pb, async) ((async) ? PBCreateFileIDRefAsync(pb) : PBCreateFileIDRefSync(pb))
  1853.  
  1854. #if !GENERATINGCFM
  1855. #pragma parameter __D0 PBCreateFileIDRefSync(__A0)
  1856. #endif
  1857. extern pascal OSErr PBCreateFileIDRefSync(HParmBlkPtr paramBlock)
  1858.  TWOWORDINLINE(0x7014, 0xA260);
  1859.  
  1860. #if !GENERATINGCFM
  1861. #pragma parameter __D0 PBCreateFileIDRefAsync(__A0)
  1862. #endif
  1863. extern pascal OSErr PBCreateFileIDRefAsync(HParmBlkPtr paramBlock)
  1864.  TWOWORDINLINE(0x7014, 0xA660);
  1865. #define PBResolveFileIDRef(pb, async) ((async) ? PBResolveFileIDRefAsync(pb) : PBResolveFileIDRefSync(pb))
  1866.  
  1867. #if !GENERATINGCFM
  1868. #pragma parameter __D0 PBResolveFileIDRefSync(__A0)
  1869. #endif
  1870. extern pascal OSErr PBResolveFileIDRefSync(HParmBlkPtr paramBlock)
  1871.  TWOWORDINLINE(0x7016, 0xA260);
  1872.  
  1873. #if !GENERATINGCFM
  1874. #pragma parameter __D0 PBResolveFileIDRefAsync(__A0)
  1875. #endif
  1876. extern pascal OSErr PBResolveFileIDRefAsync(HParmBlkPtr paramBlock)
  1877.  TWOWORDINLINE(0x7016, 0xA660);
  1878. #define PBDeleteFileIDRef(pb, async) ((async) ? PBDeleteFileIDRefAsync(pb) : PBDeleteFileIDRefSync(pb))
  1879.  
  1880. #if !GENERATINGCFM
  1881. #pragma parameter __D0 PBDeleteFileIDRefSync(__A0)
  1882. #endif
  1883. extern pascal OSErr PBDeleteFileIDRefSync(HParmBlkPtr paramBlock)
  1884.  TWOWORDINLINE(0x7015, 0xA260);
  1885.  
  1886. #if !GENERATINGCFM
  1887. #pragma parameter __D0 PBDeleteFileIDRefAsync(__A0)
  1888. #endif
  1889. extern pascal OSErr PBDeleteFileIDRefAsync(HParmBlkPtr paramBlock)
  1890.  TWOWORDINLINE(0x7015, 0xA660);
  1891. #define PBGetForeignPrivs(pb, async) ((async) ? PBGetForeignPrivsAsync(pb) : PBGetForeignPrivsSync(pb))
  1892.  
  1893. #if !GENERATINGCFM
  1894. #pragma parameter __D0 PBGetForeignPrivsSync(__A0)
  1895. #endif
  1896. extern pascal OSErr PBGetForeignPrivsSync(HParmBlkPtr paramBlock)
  1897.  TWOWORDINLINE(0x7060, 0xA260);
  1898.  
  1899. #if !GENERATINGCFM
  1900. #pragma parameter __D0 PBGetForeignPrivsAsync(__A0)
  1901. #endif
  1902. extern pascal OSErr PBGetForeignPrivsAsync(HParmBlkPtr paramBlock)
  1903.  TWOWORDINLINE(0x7060, 0xA660);
  1904. #define PBSetForeignPrivs(pb, async) ((async) ? PBSetForeignPrivsAsync(pb) : PBSetForeignPrivsSync(pb))
  1905.  
  1906. #if !GENERATINGCFM
  1907. #pragma parameter __D0 PBSetForeignPrivsSync(__A0)
  1908. #endif
  1909. extern pascal OSErr PBSetForeignPrivsSync(HParmBlkPtr paramBlock)
  1910.  TWOWORDINLINE(0x7061, 0xA260);
  1911.  
  1912. #if !GENERATINGCFM
  1913. #pragma parameter __D0 PBSetForeignPrivsAsync(__A0)
  1914. #endif
  1915. extern pascal OSErr PBSetForeignPrivsAsync(HParmBlkPtr paramBlock)
  1916.  TWOWORDINLINE(0x7061, 0xA660);
  1917. /*  Desktop Manager  */
  1918.  
  1919. #if !GENERATINGCFM
  1920. #pragma parameter __D0 PBDTGetPath(__A0)
  1921. #endif
  1922. extern pascal OSErr PBDTGetPath(DTPBPtr paramBlock)
  1923.  TWOWORDINLINE(0x7020, 0xA260);
  1924.  
  1925. #if !GENERATINGCFM
  1926. #pragma parameter __D0 PBDTCloseDown(__A0)
  1927. #endif
  1928. extern pascal OSErr PBDTCloseDown(DTPBPtr paramBlock)
  1929.  TWOWORDINLINE(0x7021, 0xA260);
  1930. #define PBDTAddIcon(pb, async) ((async) ? PBDTAddIconAsync(pb) : PBDTAddIconSync(pb))
  1931.  
  1932. #if !GENERATINGCFM
  1933. #pragma parameter __D0 PBDTAddIconSync(__A0)
  1934. #endif
  1935. extern pascal OSErr PBDTAddIconSync(DTPBPtr paramBlock)
  1936.  TWOWORDINLINE(0x7022, 0xA260);
  1937.  
  1938. #if !GENERATINGCFM
  1939. #pragma parameter __D0 PBDTAddIconAsync(__A0)
  1940. #endif
  1941. extern pascal OSErr PBDTAddIconAsync(DTPBPtr paramBlock)
  1942.  TWOWORDINLINE(0x7022, 0xA660);
  1943. #define PBDTGetIcon(pb, async) ((async) ? PBDTGetIconAsync(pb) : PBDTGetIconSync(pb))
  1944.  
  1945. #if !GENERATINGCFM
  1946. #pragma parameter __D0 PBDTGetIconSync(__A0)
  1947. #endif
  1948. extern pascal OSErr PBDTGetIconSync(DTPBPtr paramBlock)
  1949.  TWOWORDINLINE(0x7023, 0xA260);
  1950.  
  1951. #if !GENERATINGCFM
  1952. #pragma parameter __D0 PBDTGetIconAsync(__A0)
  1953. #endif
  1954. extern pascal OSErr PBDTGetIconAsync(DTPBPtr paramBlock)
  1955.  TWOWORDINLINE(0x7023, 0xA660);
  1956. #define PBDTGetIconInfo(pb, async) ((async) ? PBDTGetIconInfoAsync(pb) : PBDTGetIconInfoSync(pb))
  1957.  
  1958. #if !GENERATINGCFM
  1959. #pragma parameter __D0 PBDTGetIconInfoSync(__A0)
  1960. #endif
  1961. extern pascal OSErr PBDTGetIconInfoSync(DTPBPtr paramBlock)
  1962.  TWOWORDINLINE(0x7024, 0xA260);
  1963.  
  1964. #if !GENERATINGCFM
  1965. #pragma parameter __D0 PBDTGetIconInfoAsync(__A0)
  1966. #endif
  1967. extern pascal OSErr PBDTGetIconInfoAsync(DTPBPtr paramBlock)
  1968.  TWOWORDINLINE(0x7024, 0xA660);
  1969. #define PBDTAddAPPL(pb, async) ((async) ? PBDTAddAPPLAsync(pb) : PBDTAddAPPLSync(pb))
  1970.  
  1971. #if !GENERATINGCFM
  1972. #pragma parameter __D0 PBDTAddAPPLSync(__A0)
  1973. #endif
  1974. extern pascal OSErr PBDTAddAPPLSync(DTPBPtr paramBlock)
  1975.  TWOWORDINLINE(0x7025, 0xA260);
  1976.  
  1977. #if !GENERATINGCFM
  1978. #pragma parameter __D0 PBDTAddAPPLAsync(__A0)
  1979. #endif
  1980. extern pascal OSErr PBDTAddAPPLAsync(DTPBPtr paramBlock)
  1981.  TWOWORDINLINE(0x7025, 0xA660);
  1982. #define PBDTRemoveAPPL(pb, async) ((async) ? PBDTRemoveAPPLAsync(pb) : PBDTRemoveAPPLSync(pb))
  1983.  
  1984. #if !GENERATINGCFM
  1985. #pragma parameter __D0 PBDTRemoveAPPLSync(__A0)
  1986. #endif
  1987. extern pascal OSErr PBDTRemoveAPPLSync(DTPBPtr paramBlock)
  1988.  TWOWORDINLINE(0x7026, 0xA260);
  1989.  
  1990. #if !GENERATINGCFM
  1991. #pragma parameter __D0 PBDTRemoveAPPLAsync(__A0)
  1992. #endif
  1993. extern pascal OSErr PBDTRemoveAPPLAsync(DTPBPtr paramBlock)
  1994.  TWOWORDINLINE(0x7026, 0xA660);
  1995. #define PBDTGetAPPL(pb, async) ((async) ? PBDTGetAPPLAsync(pb) : PBDTGetAPPLSync(pb))
  1996.  
  1997. #if !GENERATINGCFM
  1998. #pragma parameter __D0 PBDTGetAPPLSync(__A0)
  1999. #endif
  2000. extern pascal OSErr PBDTGetAPPLSync(DTPBPtr paramBlock)
  2001.  TWOWORDINLINE(0x7027, 0xA260);
  2002.  
  2003. #if !GENERATINGCFM
  2004. #pragma parameter __D0 PBDTGetAPPLAsync(__A0)
  2005. #endif
  2006. extern pascal OSErr PBDTGetAPPLAsync(DTPBPtr paramBlock)
  2007.  TWOWORDINLINE(0x7027, 0xA660);
  2008. #define PBDTSetComment(pb, async) ((async) ? PBDTSetCommentAsync(pb) : PBDTSetCommentSync(pb))
  2009.  
  2010. #if !GENERATINGCFM
  2011. #pragma parameter __D0 PBDTSetCommentSync(__A0)
  2012. #endif
  2013. extern pascal OSErr PBDTSetCommentSync(DTPBPtr paramBlock)
  2014.  TWOWORDINLINE(0x7028, 0xA260);
  2015.  
  2016. #if !GENERATINGCFM
  2017. #pragma parameter __D0 PBDTSetCommentAsync(__A0)
  2018. #endif
  2019. extern pascal OSErr PBDTSetCommentAsync(DTPBPtr paramBlock)
  2020.  TWOWORDINLINE(0x7028, 0xA660);
  2021. #define PBDTRemoveComment(pb, async) ((async) ? PBDTRemoveCommentAsync(pb) : PBDTRemoveCommentSync(pb))
  2022.  
  2023. #if !GENERATINGCFM
  2024. #pragma parameter __D0 PBDTRemoveCommentSync(__A0)
  2025. #endif
  2026. extern pascal OSErr PBDTRemoveCommentSync(DTPBPtr paramBlock)
  2027.  TWOWORDINLINE(0x7029, 0xA260);
  2028.  
  2029. #if !GENERATINGCFM
  2030. #pragma parameter __D0 PBDTRemoveCommentAsync(__A0)
  2031. #endif
  2032. extern pascal OSErr PBDTRemoveCommentAsync(DTPBPtr paramBlock)
  2033.  TWOWORDINLINE(0x7029, 0xA660);
  2034. #define PBDTGetComment(pb, async) ((async) ? PBDTGetCommentAsync(pb) : PBDTGetCommentSync(pb))
  2035.  
  2036. #if !GENERATINGCFM
  2037. #pragma parameter __D0 PBDTGetCommentSync(__A0)
  2038. #endif
  2039. extern pascal OSErr PBDTGetCommentSync(DTPBPtr paramBlock)
  2040.  TWOWORDINLINE(0x702A, 0xA260);
  2041.  
  2042. #if !GENERATINGCFM
  2043. #pragma parameter __D0 PBDTGetCommentAsync(__A0)
  2044. #endif
  2045. extern pascal OSErr PBDTGetCommentAsync(DTPBPtr paramBlock)
  2046.  TWOWORDINLINE(0x702A, 0xA660);
  2047. #define PBDTFlush(pb, async) ((async) ? PBDTFlushAsync(pb) : PBDTFlushSync(pb))
  2048.  
  2049. #if !GENERATINGCFM
  2050. #pragma parameter __D0 PBDTFlushSync(__A0)
  2051. #endif
  2052. extern pascal OSErr PBDTFlushSync(DTPBPtr paramBlock)
  2053.  TWOWORDINLINE(0x702B, 0xA260);
  2054.  
  2055. #if !GENERATINGCFM
  2056. #pragma parameter __D0 PBDTFlushAsync(__A0)
  2057. #endif
  2058. extern pascal OSErr PBDTFlushAsync(DTPBPtr paramBlock)
  2059.  TWOWORDINLINE(0x702B, 0xA660);
  2060. #define PBDTReset(pb, async) ((async) ? PBDTResetAsync(pb) : PBDTResetSync(pb))
  2061.  
  2062. #if !GENERATINGCFM
  2063. #pragma parameter __D0 PBDTResetSync(__A0)
  2064. #endif
  2065. extern pascal OSErr PBDTResetSync(DTPBPtr paramBlock)
  2066.  TWOWORDINLINE(0x702C, 0xA260);
  2067.  
  2068. #if !GENERATINGCFM
  2069. #pragma parameter __D0 PBDTResetAsync(__A0)
  2070. #endif
  2071. extern pascal OSErr PBDTResetAsync(DTPBPtr paramBlock)
  2072.  TWOWORDINLINE(0x702C, 0xA660);
  2073. #define PBDTGetInfo(pb, async) ((async) ? PBDTGetInfoAsync(pb) : PBDTGetInfoSync(pb))
  2074.  
  2075. #if !GENERATINGCFM
  2076. #pragma parameter __D0 PBDTGetInfoSync(__A0)
  2077. #endif
  2078. extern pascal OSErr PBDTGetInfoSync(DTPBPtr paramBlock)
  2079.  TWOWORDINLINE(0x702D, 0xA260);
  2080.  
  2081. #if !GENERATINGCFM
  2082. #pragma parameter __D0 PBDTGetInfoAsync(__A0)
  2083. #endif
  2084. extern pascal OSErr PBDTGetInfoAsync(DTPBPtr paramBlock)
  2085.  TWOWORDINLINE(0x702D, 0xA660);
  2086.  
  2087. #if !GENERATINGCFM
  2088. #pragma parameter __D0 PBDTOpenInform(__A0)
  2089. #endif
  2090. extern pascal OSErr PBDTOpenInform(DTPBPtr paramBlock)
  2091.  TWOWORDINLINE(0x702E, 0xA060);
  2092. #define PBDTDelete(pb, async) ((async) ? PBDTDeleteAsync(pb) : PBDTDeleteSync(pb))
  2093.  
  2094. #if !GENERATINGCFM
  2095. #pragma parameter __D0 PBDTDeleteSync(__A0)
  2096. #endif
  2097. extern pascal OSErr PBDTDeleteSync(DTPBPtr paramBlock)
  2098.  TWOWORDINLINE(0x702F, 0xA060);
  2099.  
  2100. #if !GENERATINGCFM
  2101. #pragma parameter __D0 PBDTDeleteAsync(__A0)
  2102. #endif
  2103. extern pascal OSErr PBDTDeleteAsync(DTPBPtr paramBlock)
  2104.  TWOWORDINLINE(0x702F, 0xA460);
  2105. /*  VolumeMount traps  */
  2106.  
  2107. #if !GENERATINGCFM
  2108. #pragma parameter __D0 PBGetVolMountInfoSize(__A0)
  2109. #endif
  2110. extern pascal OSErr PBGetVolMountInfoSize(ParmBlkPtr paramBlock)
  2111.  TWOWORDINLINE(0x703F, 0xA260);
  2112.  
  2113. #if !GENERATINGCFM
  2114. #pragma parameter __D0 PBGetVolMountInfo(__A0)
  2115. #endif
  2116. extern pascal OSErr PBGetVolMountInfo(ParmBlkPtr paramBlock)
  2117.  TWOWORDINLINE(0x7040, 0xA260);
  2118.  
  2119. #if !GENERATINGCFM
  2120. #pragma parameter __D0 PBVolumeMount(__A0)
  2121. #endif
  2122. extern pascal OSErr PBVolumeMount(ParmBlkPtr paramBlock)
  2123.  TWOWORDINLINE(0x7041, 0xA260);
  2124. /*  FSp traps  */
  2125. extern pascal OSErr FSMakeFSSpec(short vRefNum, long dirID, ConstStr255Param fileName, FSSpec *spec)
  2126.  TWOWORDINLINE(0x7001, 0xAA52);
  2127. extern pascal OSErr FSpOpenDF(const FSSpec *spec, SInt8 permission, short *refNum)
  2128.  TWOWORDINLINE(0x7002, 0xAA52);
  2129. extern pascal OSErr FSpOpenRF(const FSSpec *spec, SInt8 permission, short *refNum)
  2130.  TWOWORDINLINE(0x7003, 0xAA52);
  2131. extern pascal OSErr FSpCreate(const FSSpec *spec, OSType creator, OSType fileType, ScriptCode scriptTag)
  2132.  TWOWORDINLINE(0x7004, 0xAA52);
  2133. extern pascal OSErr FSpDirCreate(const FSSpec *spec, ScriptCode scriptTag, long *createdDirID)
  2134.  TWOWORDINLINE(0x7005, 0xAA52);
  2135. extern pascal OSErr FSpDelete(const FSSpec *spec)
  2136.  TWOWORDINLINE(0x7006, 0xAA52);
  2137. extern pascal OSErr FSpGetFInfo(const FSSpec *spec, FInfo *fndrInfo)
  2138.  TWOWORDINLINE(0x7007, 0xAA52);
  2139. extern pascal OSErr FSpSetFInfo(const FSSpec *spec, const FInfo *fndrInfo)
  2140.  TWOWORDINLINE(0x7008, 0xAA52);
  2141. extern pascal OSErr FSpSetFLock(const FSSpec *spec)
  2142.  TWOWORDINLINE(0x7009, 0xAA52);
  2143. extern pascal OSErr FSpRstFLock(const FSSpec *spec)
  2144.  TWOWORDINLINE(0x700A, 0xAA52);
  2145. extern pascal OSErr FSpRename(const FSSpec *spec, ConstStr255Param newName)
  2146.  TWOWORDINLINE(0x700B, 0xAA52);
  2147. extern pascal OSErr FSpCatMove(const FSSpec *source, const FSSpec *dest)
  2148.  TWOWORDINLINE(0x700C, 0xAA52);
  2149. extern pascal OSErr FSpExchangeFiles(const FSSpec *source, const FSSpec *dest)
  2150.  TWOWORDINLINE(0x700F, 0xAA52);
  2151. /*
  2152.     PBGetAltAccess and PBSetAltAccess are obsolete and will not be supported 
  2153.     on PowerPC. Equivalent functionality is provided by the routines 
  2154.     PBGetForeignPrivs and PBSetForeignPrivs.
  2155. */
  2156. #if OLDROUTINENAMES && !GENERATINGCFM
  2157. #define PBGetAltAccess(pb, async) ((async) ? PBGetAltAccessAsync(pb) : PBGetAltAccessSync(pb))
  2158.  
  2159. #if !GENERATINGCFM
  2160. #pragma parameter __D0 PBGetAltAccessSync(__A0)
  2161. #endif
  2162. extern pascal OSErr PBGetAltAccessSync(HParmBlkPtr paramBlock)
  2163.  TWOWORDINLINE(0x7060, 0xA060);
  2164.  
  2165. #if !GENERATINGCFM
  2166. #pragma parameter __D0 PBGetAltAccessAsync(__A0)
  2167. #endif
  2168. extern pascal OSErr PBGetAltAccessAsync(HParmBlkPtr paramBlock)
  2169.  TWOWORDINLINE(0x7060, 0xA460);
  2170. #define PBSetAltAccess(pb, async) ((async) ? PBSetAltAccessAsync(pb) : PBSetAltAccessSync(pb))
  2171.  
  2172. #if !GENERATINGCFM
  2173. #pragma parameter __D0 PBSetAltAccessSync(__A0)
  2174. #endif
  2175. extern pascal OSErr PBSetAltAccessSync(HParmBlkPtr paramBlock)
  2176.  TWOWORDINLINE(0x7061, 0xA060);
  2177.  
  2178. #if !GENERATINGCFM
  2179. #pragma parameter __D0 PBSetAltAccessAsync(__A0)
  2180. #endif
  2181. extern pascal OSErr PBSetAltAccessAsync(HParmBlkPtr paramBlock)
  2182.  TWOWORDINLINE(0x7061, 0xA460);
  2183. #endif
  2184.  
  2185. #if !GENERATINGCFM
  2186. #pragma parameter __D0 PBShareSync(__A0)
  2187. #endif
  2188. extern pascal OSErr PBShareSync(CMovePBPtr paramBlock)
  2189.  TWOWORDINLINE(0x7042, 0xA260);
  2190.  
  2191. #if !GENERATINGCFM
  2192. #pragma parameter __D0 PBShareAsync(__A0)
  2193. #endif
  2194. extern pascal OSErr PBShareAsync(CMovePBPtr paramBlock)
  2195.  TWOWORDINLINE(0x7042, 0xA660);
  2196.  
  2197. #if !GENERATINGCFM
  2198. #pragma parameter __D0 PBUnshareSync(__A0)
  2199. #endif
  2200. extern pascal OSErr PBUnshareSync(CMovePBPtr paramBlock)
  2201.  TWOWORDINLINE(0x7043, 0xA260);
  2202.  
  2203. #if !GENERATINGCFM
  2204. #pragma parameter __D0 PBUnshareAsync(__A0)
  2205. #endif
  2206. extern pascal OSErr PBUnshareAsync(CMovePBPtr paramBlock)
  2207.  TWOWORDINLINE(0x7043, 0xA660);
  2208.  
  2209. #if !GENERATINGCFM
  2210. #pragma parameter __D0 PBGetUGEntrySync(__A0)
  2211. #endif
  2212. extern pascal OSErr PBGetUGEntrySync(CMovePBPtr paramBlock)
  2213.  TWOWORDINLINE(0x7044, 0xA260);
  2214.  
  2215. #if !GENERATINGCFM
  2216. #pragma parameter __D0 PBGetUGEntryAsync(__A0)
  2217. #endif
  2218. extern pascal OSErr PBGetUGEntryAsync(CMovePBPtr paramBlock)
  2219.  TWOWORDINLINE(0x7044, 0xA660);
  2220.  
  2221. #ifdef __CFM68K__
  2222. #pragma lib_export off
  2223. #endif
  2224.  
  2225. #if GENERATINGPOWERPC
  2226. #pragma options align=reset
  2227. #endif
  2228.  
  2229. #ifdef __cplusplus
  2230. }
  2231. #endif
  2232.  
  2233. #endif /* __FILES__ */
  2234.